Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
580ec77e4a | ||
|
|
aa1afbdeb7 | ||
|
|
096fcd733b | ||
|
|
3f72fa4a9d | ||
|
|
4ce2c8b15e | ||
|
|
45d40553b1 | ||
|
|
40001a6c27 | ||
|
|
9739bb3797 | ||
|
|
f3c363acb6 | ||
|
|
d4c7584cf8 | ||
|
|
69c2e03497 | ||
|
|
e33ddabcf8 | ||
|
|
15a619c4e5 | ||
|
|
a0de673b62 | ||
|
|
0bc84c65e0 | ||
|
|
8694b94a58 | ||
|
|
5719526d7f | ||
|
|
f5d3997e37 | ||
|
|
1a18dace60 | ||
|
|
92e751b8f7 | ||
|
|
831489b72e | ||
|
|
bde10ed187 | ||
|
|
40471bbac5 | ||
|
|
131d5a48e7 | ||
|
|
29c349d21d | ||
|
|
827fe90d1a | ||
|
|
3950a6ac47 | ||
|
|
e9024b77d8 | ||
|
|
c91bd3f9cf | ||
|
|
52eb54c922 | ||
|
|
34707b1ed5 | ||
|
|
c26bc402a4 | ||
|
|
ff682bff13 | ||
|
|
dff8e5df3f | ||
|
|
b8ab915083 | ||
|
|
ac3b405df6 | ||
|
|
2924282425 | ||
|
|
fa4c5c645f | ||
|
|
2ddf80a41b | ||
|
|
bc97ca6356 | ||
|
|
0d64108dc8 | ||
|
|
a7ee29e57a | ||
|
|
a768a013f7 | ||
|
|
0dc5cba6b8 | ||
|
|
57a64a1340 | ||
|
|
5497b10e46 | ||
|
|
d2b0877bd8 | ||
|
|
d8b85102bc | ||
|
|
80dddb6752 | ||
|
|
3b4f53a409 | ||
|
|
618ce76ba0 | ||
|
|
d973e5a568 | ||
|
|
3126383beb | ||
|
|
ff2d8357be | ||
|
|
1cb0b8021f | ||
|
|
66f595e485 | ||
|
|
faea5fcac1 | ||
|
|
93e96a5e47 | ||
|
|
747faf54b3 | ||
|
|
d7752784f1 | ||
|
|
0b32eaf1b1 | ||
|
|
fedebd60c8 | ||
|
|
18fc6a629e | ||
|
|
345900742c | ||
|
|
9a19768a86 | ||
|
|
1e4b38675b | ||
|
|
84ce2c9a7d | ||
|
|
f062ae54e6 | ||
|
|
64bb0ebdbd | ||
|
|
b7935442d8 |
@@ -98,6 +98,7 @@ install_manifest.txt
|
||||
# docs
|
||||
/docs/.doxygen_up_to_date
|
||||
/docs/build
|
||||
/docs/plot/images
|
||||
/latex
|
||||
|
||||
# m4
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
# .readthedocs.yaml
|
||||
# Read the Docs configuration file
|
||||
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
|
||||
|
||||
# Required
|
||||
version: 2
|
||||
|
||||
build:
|
||||
os: "ubuntu-22.04"
|
||||
tools:
|
||||
python: "mambaforge-4.10"
|
||||
|
||||
jobs:
|
||||
post_checkout:
|
||||
# Cancel building pull requests when there aren't changed in the docs directory or YAML file.
|
||||
# You can add any other files or directories that you'd like here as well,
|
||||
# like your docs requirements file, or other files that will change your docs build.
|
||||
#
|
||||
# If there are no changes (git diff exits with 0) we force the command to return with 183.
|
||||
# This is a special exit code on Read the Docs that will cancel the build immediately.
|
||||
- |
|
||||
if [ "$READTHEDOCS_VERSION_TYPE" = "external" ] && git diff --quiet origin/8.1 -- docs/ .readthedocs.yaml;
|
||||
then
|
||||
exit 183;
|
||||
fi
|
||||
- (git --no-pager log --pretty="tformat:%s -- %b" -1 | grep -viqP "skip ci|ci skip") || exit 183
|
||||
pre_build:
|
||||
- ./docs/rtd/pre_build.sh
|
||||
- ./scripts/doxygen.sh
|
||||
- ./docs/rtd/plot.sh
|
||||
post_build:
|
||||
- ./docs/rtd/post_build.sh
|
||||
|
||||
apt_packages:
|
||||
- cmake
|
||||
- ninja-build
|
||||
- g++
|
||||
- sqlite3
|
||||
- libsqlite3-dev
|
||||
- libtiff-dev
|
||||
- libcurl4-openssl-dev
|
||||
|
||||
formats:
|
||||
- pdf
|
||||
- epub
|
||||
|
||||
conda:
|
||||
environment: docs/environment.yml
|
||||
|
||||
sphinx:
|
||||
configuration: docs/source/conf.py
|
||||
fail_on_warning: true
|
||||
@@ -1,6 +1,6 @@
|
||||
To cite PROJ in publications use:
|
||||
|
||||
PROJ contributors (2020). PROJ coordinate transformation software
|
||||
PROJ contributors (2021). PROJ coordinate transformation software
|
||||
library. Open Source Geospatial Foundation. URL https://proj.org/.
|
||||
|
||||
A BibTeX entry for LaTeX users is
|
||||
|
||||
+2
-2
@@ -110,9 +110,9 @@ message(STATUS "Configuring PROJ:")
|
||||
#PROJ version information
|
||||
################################################################################
|
||||
include(ProjVersion)
|
||||
proj_version(MAJOR 8 MINOR 1 PATCH 0)
|
||||
proj_version(MAJOR 8 MINOR 1 PATCH 1)
|
||||
set(PROJ_API_VERSION "22")
|
||||
set(PROJ_BUILD_VERSION "23.0.1")
|
||||
set(PROJ_BUILD_VERSION "22.1.1")
|
||||
|
||||
################################################################################
|
||||
# Build features and variants
|
||||
|
||||
@@ -1,3 +1,56 @@
|
||||
8.1.1 Release Notes
|
||||
-------------------
|
||||
|
||||
Updates
|
||||
-------
|
||||
|
||||
o EPSG Database updated to version 10.028 (#2773)
|
||||
|
||||
Bug Fixes
|
||||
---------
|
||||
|
||||
o Include algorithm header file to avoid build errors on Alpine Linux (#2769)
|
||||
|
||||
o CMake: fix installation of executables on iOS (#2766)
|
||||
|
||||
o Associate extents to transformations of CRS's that include GEOIDMODEL (#2769)
|
||||
|
||||
o Logging: avoid some overhead when logging is not enabled (#2775)
|
||||
|
||||
o ortho: remove useless and invalid log trace (#2777)
|
||||
|
||||
o CMake: remove external nlohmann_json from INTERFACE_LINK_LIBRARIES target (#2781)
|
||||
o reateOperations(): fix SourceTargetCRSExtentUse::NONE mode (#2783)
|
||||
|
||||
o GeoTIFF grid reading: perf improvements (#2788)
|
||||
|
||||
o Conversion::createUTM(): avoid integer overflow (#2796)
|
||||
|
||||
o Inverse laea ellipsoidal: return PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN
|
||||
when appropriates (#2801)
|
||||
|
||||
o Make sure that proj_crs_promote_to_3D returns a derived CRS (#2806)
|
||||
|
||||
o createOperations(): fix missing deg<-->rad conversion when transforming with a
|
||||
CRS that has a fallback-to-PROJ4-string behaviour and is a BoundCRS of a
|
||||
GeographicCRS (#2808)
|
||||
|
||||
o WKT2 import/export: preserve PROJ.4 CRS extension string in REMARKS[] (#2812)
|
||||
|
||||
o BoundCRS: accept importing/exporting in WKT2 and PROJJSON the
|
||||
scope/area/extent/id attributes (#2815)
|
||||
|
||||
o ConcatenatedOperation::fixStepsDirection(): fix bad chaining of steps when
|
||||
inverse map projection is involved in non-final step (#2819)
|
||||
|
||||
|
||||
THANKS TO
|
||||
---------
|
||||
|
||||
Brendan Jurd
|
||||
Kristian Evers
|
||||
Even Rouault
|
||||
|
||||
8.1.0 Release Notes
|
||||
-------------------
|
||||
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
|
||||
AC_PREREQ(2.59)
|
||||
AC_INIT([PROJ], [8.1.0],
|
||||
AC_INIT([PROJ], [8.1.1],
|
||||
[https://github.com/OSGeo/PROJ/issues], proj, [https://proj.org])
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
AC_LANG(C)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"$id": "https://proj.org/schemas/v0.2/projjson.schema.json",
|
||||
"$id": "https://proj.org/schemas/v0.3/projjson.schema.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"description": "Schema for PROJJSON (v0.2.1)",
|
||||
"description": "Schema for PROJJSON (v0.3)",
|
||||
"$comment": "This file exists both in data/ and in schemas/vXXX/. Keep both in sync. And if changing the value of $id, change PROJJSON_CURRENT_VERSION accordingly in io.cpp",
|
||||
|
||||
"oneOf": [
|
||||
@@ -111,12 +111,20 @@
|
||||
|
||||
"bound_crs": {
|
||||
"type": "object",
|
||||
"allOf": [{ "$ref": "#/definitions/object_usage" }],
|
||||
"properties": {
|
||||
"$schema" : { "type": "string" },
|
||||
"type": { "type": "string", "enum": ["BoundCRS"] },
|
||||
"name": { "type": "string" },
|
||||
"source_crs": { "$ref": "#/definitions/crs" },
|
||||
"target_crs": { "$ref": "#/definitions/crs" },
|
||||
"transformation": { "$ref": "#/definitions/abridged_transformation" }
|
||||
"transformation": { "$ref": "#/definitions/abridged_transformation" },
|
||||
"scope": {},
|
||||
"area": {},
|
||||
"bbox": {},
|
||||
"usages": {},
|
||||
"remarks": {},
|
||||
"id": {}, "ids": {}
|
||||
},
|
||||
"required" : [ "source_crs", "target_crs", "transformation" ],
|
||||
"additionalProperties": false
|
||||
|
||||
+323
-91
@@ -688,19 +688,19 @@ INSERT INTO "conversion" VALUES('EPSG','6308','Cyprus Transverse Mercator','Intr
|
||||
INSERT INTO "usage" VALUES('EPSG','9713','conversion','EPSG','6308','EPSG','3236','EPSG','1056');
|
||||
INSERT INTO "conversion" VALUES('EPSG','6361','Mexico LCC','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',12.0,'EPSG','9102','EPSG','8822','Longitude of false origin',-102.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',17.5,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',29.5,'EPSG','9102','EPSG','8826','Easting at false origin',2500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','9719','conversion','EPSG','6361','EPSG','1160','EPSG','1241');
|
||||
INSERT INTO "conversion" VALUES('EPSG','6374','Ukraine TM zone 7','Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',21.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','6374','Ukraine TM zone 7','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',21.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','9721','conversion','EPSG','6374','EPSG','3906','EPSG','1207');
|
||||
INSERT INTO "conversion" VALUES('EPSG','6375','Ukraine TM zone 8','Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',24.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','6375','Ukraine TM zone 8','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',24.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','9722','conversion','EPSG','6375','EPSG','3907','EPSG','1207');
|
||||
INSERT INTO "conversion" VALUES('EPSG','6376','Ukraine TM zone 9','Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',27.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','6376','Ukraine TM zone 9','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',27.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','9723','conversion','EPSG','6376','EPSG','3908','EPSG','1207');
|
||||
INSERT INTO "conversion" VALUES('EPSG','6377','Ukraine TM zone 10','Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',30.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','6377','Ukraine TM zone 10','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',30.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','9724','conversion','EPSG','6377','EPSG','3909','EPSG','1207');
|
||||
INSERT INTO "conversion" VALUES('EPSG','6378','Ukraine TM zone 11','Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',33.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','6378','Ukraine TM zone 11','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',33.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','9725','conversion','EPSG','6378','EPSG','3910','EPSG','1207');
|
||||
INSERT INTO "conversion" VALUES('EPSG','6379','Ukraine TM zone 12','Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',36.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','6379','Ukraine TM zone 12','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',36.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','9726','conversion','EPSG','6379','EPSG','3912','EPSG','1207');
|
||||
INSERT INTO "conversion" VALUES('EPSG','6380','Ukraine TM zone 13','Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',39.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','6380','Ukraine TM zone 13','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',39.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','9727','conversion','EPSG','6380','EPSG','3913','EPSG','1207');
|
||||
INSERT INTO "conversion" VALUES('EPSG','6390','Cayman Islands LCC (ft)','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',19.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-80.34,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',19.2,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',19.42,'EPSG','9110','EPSG','8826','Easting at false origin',2950000.0,'EPSG','9002','EPSG','8827','Northing at false origin',1900000.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','9730','conversion','EPSG','6390','EPSG','1063','EPSG','1027');
|
||||
@@ -2913,7 +2913,7 @@ INSERT INTO "conversion" VALUES('EPSG','16093','3-degree Gauss-Kruger zone 63','
|
||||
INSERT INTO "usage" VALUES('EPSG','12096','conversion','EPSG','16093','EPSG','2651','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16094','3-degree Gauss-Kruger zone 64','Also found with zone truncated from false easting: see 3-degree Gauss-Kruger cm 168W (code 16194). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-168.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',64500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12097','conversion','EPSG','16094','EPSG','2652','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16099','3-degree Gauss-Kruger zone 60','Also found with zone truncated from false easting: see 3-degree Gauss-Kruger cm 180 (code 16190). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',180.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',60500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16099','3-degree Gauss-Kruger zone 60','Also found with zone truncated from false easting: see 3-degree Gauss-Kruger CM 180E (code 16190).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',180.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',60500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12098','conversion','EPSG','16099','EPSG','2648','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16100','UTM grid system (southern hemisphere)','Use UTM zone xx S (codes 16101-16160) for use outwith zone boundary or when easting is not prefixed by zone number.','EPSG','9824','Transverse Mercator Zoned Grid System','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8830','Initial longitude',-180.0,'EPSG','9102','EPSG','8831','Zone width',6.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',10000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12099','conversion','EPSG','16100','EPSG','1999','EPSG','1163');
|
||||
@@ -3079,7 +3079,7 @@ INSERT INTO "conversion" VALUES('EPSG','16188','3-degree Gauss-Kruger CM 174E','
|
||||
INSERT INTO "usage" VALUES('EPSG','12179','conversion','EPSG','16188','EPSG','2646','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16189','3-degree Gauss-Kruger CM 177E','3-degree Gauss-Kruger zone 59N (code 16089) without zone prefix to false easting value. Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',177.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1);
|
||||
INSERT INTO "usage" VALUES('EPSG','12180','conversion','EPSG','16189','EPSG','2647','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16190','3-degree Gauss-Kruger CM 180','3-degree Gauss-Kruger zone 60N (code 16099) without zone prefix to false easting value. Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',180.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16190','3-degree Gauss-Kruger CM 180E','3-degree Gauss-Kruger zone 60N (code 16099) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',180.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12181','conversion','EPSG','16190','EPSG','2648','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16191','3-degree Gauss-Kruger CM 177W','3-degree Gauss-Kruger zone 61N (code 16091) without zone prefix to false easting value. Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-177.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1);
|
||||
INSERT INTO "usage" VALUES('EPSG','12182','conversion','EPSG','16191','EPSG','2649','EPSG','1055');
|
||||
@@ -3091,67 +3091,67 @@ INSERT INTO "conversion" VALUES('EPSG','16194','3-degree Gauss-Kruger CM 168W','
|
||||
INSERT INTO "usage" VALUES('EPSG','12185','conversion','EPSG','16194','EPSG','2652','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16201','6-degree Gauss-Kruger zone 1','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 3E (code 16301). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',3.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',1500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12186','conversion','EPSG','16201','EPSG','1933','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16202','6-degree Gauss-Kruger zone 2','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 9E (code 16302). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',9.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',2500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16202','6-degree Gauss-Kruger zone 2','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 9E (code 16302).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',9.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',2500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12187','conversion','EPSG','16202','EPSG','2741','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16203','6-degree Gauss-Kruger zone 3','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 15E (code 16303). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',15.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',3500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16203','6-degree Gauss-Kruger zone 3','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 15E (code 16303).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',15.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',3500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12188','conversion','EPSG','16203','EPSG','2742','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16204','6-degree Gauss-Kruger zone 4','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 21E (code 16304). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',21.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',4500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16204','6-degree Gauss-Kruger zone 4','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 21E (code 16304).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',21.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',4500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12189','conversion','EPSG','16204','EPSG','2743','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16205','6-degree Gauss-Kruger zone 5','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 27E (code 16305). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',27.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',5500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16205','6-degree Gauss-Kruger zone 5','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 27E (code 16305).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',27.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',5500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12190','conversion','EPSG','16205','EPSG','2744','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16206','6-degree Gauss-Kruger zone 6','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 33E (code 16306). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',33.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',6500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16206','6-degree Gauss-Kruger zone 6','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 33E (code 16306).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',33.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',6500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12191','conversion','EPSG','16206','EPSG','2745','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16207','6-degree Gauss-Kruger zone 7','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 39E (code 16307). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',39.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',7500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16207','6-degree Gauss-Kruger zone 7','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 39E (code 16307).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',39.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',7500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12192','conversion','EPSG','16207','EPSG','2746','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16208','6-degree Gauss-Kruger zone 8','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 45E (code 16308). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',45.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',8500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16208','6-degree Gauss-Kruger zone 8','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 45E (code 16308).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',45.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',8500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12193','conversion','EPSG','16208','EPSG','1947','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16209','6-degree Gauss-Kruger zone 9','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 51E (code 16309). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',51.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',9500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16209','6-degree Gauss-Kruger zone 9','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 51E (code 16309).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',51.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',9500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12194','conversion','EPSG','16209','EPSG','1949','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16210','6-degree Gauss-Kruger zone 10','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 57E (code 16310). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',57.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',10500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16210','6-degree Gauss-Kruger zone 10','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 57E (code 16310).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',57.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',10500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12195','conversion','EPSG','16210','EPSG','1951','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16211','6-degree Gauss-Kruger zone 11','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 63E (code 16311). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',63.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',11500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16211','6-degree Gauss-Kruger zone 11','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 63E (code 16311).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',63.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',11500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12196','conversion','EPSG','16211','EPSG','1953','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16212','6-degree Gauss-Kruger zone 12','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 69E (code 16312). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',69.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',12500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16212','6-degree Gauss-Kruger zone 12','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 69E (code 16312).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',69.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',12500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12197','conversion','EPSG','16212','EPSG','1955','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16213','6-degree Gauss-Kruger zone 13','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 75E (code 16313). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',75.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',13500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16213','6-degree Gauss-Kruger zone 13','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 75E (code 16313).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',75.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',13500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12198','conversion','EPSG','16213','EPSG','1957','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16214','6-degree Gauss-Kruger zone 14','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 81E (code 16314). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',81.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',14500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16214','6-degree Gauss-Kruger zone 14','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 81E (code 16314).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',81.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',14500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12199','conversion','EPSG','16214','EPSG','1959','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16215','6-degree Gauss-Kruger zone 15','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 87E (code 16315). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',87.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',15500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16215','6-degree Gauss-Kruger zone 15','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 87E (code 16315).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',87.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',15500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12200','conversion','EPSG','16215','EPSG','1961','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16216','6-degree Gauss-Kruger zone 16','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 93E (code 16316). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',93.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',16500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16216','6-degree Gauss-Kruger zone 16','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 93E (code 16316).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',93.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',16500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12201','conversion','EPSG','16216','EPSG','1963','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16217','6-degree Gauss-Kruger zone 17','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 99E (code 16317). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',99.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',17500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16217','6-degree Gauss-Kruger zone 17','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 99E (code 16317).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',99.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',17500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12202','conversion','EPSG','16217','EPSG','1965','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16218','6-degree Gauss-Kruger zone 18','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 105E (code 16318). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',105.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',18500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16218','6-degree Gauss-Kruger zone 18','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 105E (code 16318).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',105.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',18500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12203','conversion','EPSG','16218','EPSG','1967','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16219','6-degree Gauss-Kruger zone 19','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 111E (code 16319). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',111.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',19500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16219','6-degree Gauss-Kruger zone 19','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 111E (code 16319).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',111.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',19500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12204','conversion','EPSG','16219','EPSG','1969','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16220','6-degree Gauss-Kruger zone 20','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 117E (code 16320). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',117.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',20500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16220','6-degree Gauss-Kruger zone 20','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 117E (code 16320).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',117.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',20500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12205','conversion','EPSG','16220','EPSG','1971','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16221','6-degree Gauss-Kruger zone 21','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 123E (code 16321). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',123.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',21500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16221','6-degree Gauss-Kruger zone 21','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 123E (code 16321).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',123.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',21500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12206','conversion','EPSG','16221','EPSG','1973','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16222','6-degree Gauss-Kruger zone 22','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 129E (code 16322). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',129.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',22500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16222','6-degree Gauss-Kruger zone 22','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 129E (code 16322).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',129.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',22500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12207','conversion','EPSG','16222','EPSG','1975','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16223','6-degree Gauss-Kruger zone 23','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 135E (code 16323). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',135.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',23500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16223','6-degree Gauss-Kruger zone 23','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 135E (code 16323).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',135.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',23500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12208','conversion','EPSG','16223','EPSG','1977','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16224','6-degree Gauss-Kruger zone 24','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 141E (code 16324). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',141.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',24500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16224','6-degree Gauss-Kruger zone 24','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 141E (code 16324).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',141.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',24500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12209','conversion','EPSG','16224','EPSG','1979','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16225','6-degree Gauss-Kruger zone 25','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 147E (code 16325). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',147.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',25500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16225','6-degree Gauss-Kruger zone 25','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 147E (code 16325).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',147.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',25500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12210','conversion','EPSG','16225','EPSG','1981','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16226','6-degree Gauss-Kruger zone 26','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 153E (code 16326). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',153.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',26500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16226','6-degree Gauss-Kruger zone 26','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 153E (code 16326).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',153.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',26500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12211','conversion','EPSG','16226','EPSG','1983','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16227','6-degree Gauss-Kruger zone 27','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 159E (code 16327). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',159.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',27500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16227','6-degree Gauss-Kruger zone 27','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 159E (code 16327).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',159.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',27500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12212','conversion','EPSG','16227','EPSG','1985','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16228','6-degree Gauss-Kruger zone 28','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 165E (code 16328). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',165.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',28500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16228','6-degree Gauss-Kruger zone 28','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 165E (code 16328).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',165.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',28500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12213','conversion','EPSG','16228','EPSG','1987','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16229','6-degree Gauss-Kruger zone 29','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 171E (code 16329). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',171.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',29500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16229','6-degree Gauss-Kruger zone 29','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 171E (code 16329).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',171.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',29500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12214','conversion','EPSG','16229','EPSG','1989','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16230','6-degree Gauss-Kruger zone 30','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 177E (code 16330). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',177.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',30500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16230','6-degree Gauss-Kruger zone 30','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 177E (code 16330).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',177.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',30500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12215','conversion','EPSG','16230','EPSG','1991','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16231','6-degree Gauss-Kruger zone 31','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 177W (code 16331). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-177.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',31500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16231','6-degree Gauss-Kruger zone 31','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 177W (code 16331).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-177.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',31500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12216','conversion','EPSG','16231','EPSG','1873','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16232','6-degree Gauss-Kruger zone 32','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 171W (code 16332). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-171.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',32500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16232','6-degree Gauss-Kruger zone 32','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger CM 171W (code 16332).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-171.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',32500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12217','conversion','EPSG','16232','EPSG','1875','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16233','6-degree Gauss-Kruger zone 33','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 165W (code 16333). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-165.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',33500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12218','conversion','EPSG','16233','EPSG','1877','EPSG','1211');
|
||||
@@ -3209,35 +3209,35 @@ INSERT INTO "conversion" VALUES('EPSG','16259','6-degree Gauss-Kruger zone 59','
|
||||
INSERT INTO "usage" VALUES('EPSG','12244','conversion','EPSG','16259','EPSG','1929','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16260','6-degree Gauss-Kruger zone 60','Also found with zone truncated from false easting: see 6-degree Gauss-Kruger cm 3W (code 16360). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-3.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',60500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12245','conversion','EPSG','16260','EPSG','1931','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16261','3-degree Gauss-Kruger zone 1','Also found with zone truncated from false easting: see Gauss-Kruger cm 3E (code 16301). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',3.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',1500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16261','3-degree Gauss-Kruger zone 1','Also found with zone truncated from false easting: see Gauss-Kruger CM 3E (code 16301).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',3.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',1500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12246','conversion','EPSG','16261','EPSG','2299','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16262','3-degree Gauss-Kruger zone 2','Also found with zone truncated from false easting: see 3-degree Gauss-Kruger cm 6E (code 16362). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',6.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',2500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16262','3-degree Gauss-Kruger zone 2','Also found with zone truncated from false easting: see 3-degree Gauss-Kruger CM 6E (code 16362).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',6.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',2500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12247','conversion','EPSG','16262','EPSG','2300','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16263','3-degree Gauss-Kruger zone 3','Also found with zone truncated from false easting: see Gauss-Kruger cm 9E (code 16302). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',9.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',3500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16263','3-degree Gauss-Kruger zone 3','Also found with zone truncated from false easting: see Gauss-Kruger CM 9E (code 16302).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',9.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',3500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12248','conversion','EPSG','16263','EPSG','2301','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16264','3-degree Gauss-Kruger zone 4','Also found with zone truncated from false easting: see 3-degree Gauss-Kruger cm 12E (code 16364). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',12.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',4500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16264','3-degree Gauss-Kruger zone 4','Also found with zone truncated from false easting: see 3-degree Gauss-Kruger CM 12E (code 16364).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',12.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',4500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12249','conversion','EPSG','16264','EPSG','2302','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16265','3-degree Gauss-Kruger zone 5','Also found with zone truncated from false easting: see Gauss-Kruger cm 15E (code 16303). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',15.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',5500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16265','3-degree Gauss-Kruger zone 5','Also found with zone truncated from false easting: see Gauss-Kruger CM 15E (code 16303).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',15.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',5500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12250','conversion','EPSG','16265','EPSG','2303','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16266','3-degree Gauss-Kruger zone 6','Also found with zone truncated from false easting: see 3-degree Gauss-Kruger cm 18E (code 16366). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',18.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',6500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16266','3-degree Gauss-Kruger zone 6','Also found with zone truncated from false easting: see 3-degree Gauss-Kruger CM 18E (code 16366).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',18.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',6500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12251','conversion','EPSG','16266','EPSG','2304','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16267','3-degree Gauss-Kruger zone 7','Also found with zone truncated from false easting: see Gauss-Kruger cm 21E (code 16304). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',21.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',7500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16267','3-degree Gauss-Kruger zone 7','Also found with zone truncated from false easting: see Gauss-Kruger CM 21E (code 16304).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',21.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',7500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12252','conversion','EPSG','16267','EPSG','2305','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16268','3-degree Gauss-Kruger zone 8','Also found with zone truncated from false easting: see 3-degree Gauss-Kruger cm 24E (code 16368). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',24.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',8500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16268','3-degree Gauss-Kruger zone 8','Also found with zone truncated from false easting: see 3-degree Gauss-Kruger CM 24E (code 16368).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',24.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',8500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12253','conversion','EPSG','16268','EPSG','2306','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16269','3-degree Gauss-Kruger zone 9','Also found with zone truncated from false easting: see Gauss-Kruger cm 27E (code 16305). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',27.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',9500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16269','3-degree Gauss-Kruger zone 9','Also found with zone truncated from false easting: see Gauss-Kruger CM 27E (code 16305).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',27.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',9500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12254','conversion','EPSG','16269','EPSG','2534','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16270','3-degree Gauss-Kruger zone 10','Also found with zone truncated from false easting: see 3-degree Gauss-Kruger cm 30E (code 16370). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',30.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',10500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16270','3-degree Gauss-Kruger zone 10','Also found with zone truncated from false easting: see 3-degree Gauss-Kruger CM 30E (code 16370).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',30.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',10500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12255','conversion','EPSG','16270','EPSG','2535','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16271','3-degree Gauss-Kruger zone 11','Also found with zone truncated from false easting: see Gauss-Kruger cm 33E (code 16306). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',33.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',11500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16271','3-degree Gauss-Kruger zone 11','Also found with zone truncated from false easting: see Gauss-Kruger CM 33E (code 16306).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',33.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',11500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12256','conversion','EPSG','16271','EPSG','2536','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16272','3-degree Gauss-Kruger zone 12','Also found with zone truncated from false easting: see 3-degree Gauss-Kruger cm 36E (code 16372). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',36.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',12500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16272','3-degree Gauss-Kruger zone 12','Also found with zone truncated from false easting: see 3-degree Gauss-Kruger CM 36E (code 16372).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',36.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',12500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12257','conversion','EPSG','16272','EPSG','2537','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16273','3-degree Gauss-Kruger zone 13','Also found with zone truncated from false easting: see Gauss-Kruger cm 39E (code 16307). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',39.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',13500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16273','3-degree Gauss-Kruger zone 13','Also found with zone truncated from false easting: see Gauss-Kruger CM 39E (code 16307).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',39.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',13500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12258','conversion','EPSG','16273','EPSG','2538','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16274','3-degree Gauss-Kruger zone 14','Also found with zone truncated from false easting: see 3-degree Gauss-Kruger cm 42E (code 16374). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',42.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',14500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16274','3-degree Gauss-Kruger zone 14','Also found with zone truncated from false easting: see 3-degree Gauss-Kruger CM 42E (code 16374).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',42.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',14500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12259','conversion','EPSG','16274','EPSG','2539','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16275','3-degree Gauss-Kruger zone 15','Also found with zone truncated from false easting: see Gauss-Kruger cm 45E (code 16308). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',45.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',15500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16275','3-degree Gauss-Kruger zone 15','Also found with zone truncated from false easting: see Gauss-Kruger CM 45E (code 16308).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',45.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',15500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12260','conversion','EPSG','16275','EPSG','2540','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16276','3-degree Gauss-Kruger zone 16','Also found with zone truncated from false easting: see 3-degree Gauss-Kruger cm 48E (code 16376). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',48.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',16500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12261','conversion','EPSG','16276','EPSG','2604','EPSG','1055');
|
||||
@@ -3289,67 +3289,67 @@ INSERT INTO "conversion" VALUES('EPSG','16299','3-degree Gauss-Kruger zone 39','
|
||||
INSERT INTO "usage" VALUES('EPSG','12284','conversion','EPSG','16299','EPSG','2627','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16301','Gauss-Kruger CM 3E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 1N (code 16201), or for a restricted longitude range 3-degree Gauss-Kruger zone 1N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',3.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12285','conversion','EPSG','16301','EPSG','1933','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16302','Gauss-Kruger CM 9E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 2N (code 16202), or for a restricted longitude range 3-degree Gauss-Kruger zone 3N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',9.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16302','Gauss-Kruger CM 9E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 2N (code 16202).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',9.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12286','conversion','EPSG','16302','EPSG','1935','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16303','Gauss-Kruger CM 15E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 3N (code 16203), or for a restricted longitude range 3-degree Gauss-Kruger zone 5N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',15.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16303','Gauss-Kruger CM 15E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 3N (code 16203).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',15.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12287','conversion','EPSG','16303','EPSG','1937','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16304','Gauss-Kruger CM 21E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 4N (code 16204), or for a restricted longitude range 3-degree Gauss-Kruger zone 7N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',21.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16304','Gauss-Kruger CM 21E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 4N (code 16204).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',21.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12288','conversion','EPSG','16304','EPSG','1939','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16305','Gauss-Kruger CM 27E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 5N (code 16205), or for a restricted longitude range 3-degree Gauss-Kruger zone 9N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',27.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16305','Gauss-Kruger CM 27E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 5N (code 16205).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',27.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12289','conversion','EPSG','16305','EPSG','1941','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16306','Gauss-Kruger CM 33E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 6N (code 16206), or for a restricted longitude range 3-degree Gauss-Kruger zone 11N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',33.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16306','Gauss-Kruger CM 33E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 6N (code 16206).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',33.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12290','conversion','EPSG','16306','EPSG','1943','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16307','Gauss-Kruger CM 39E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 7N (code 16207), or for a restricted longitude range 3-degree Gauss-Kruger zone 13N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',39.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16307','Gauss-Kruger CM 39E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 7N (code 16207).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',39.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12291','conversion','EPSG','16307','EPSG','1945','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16308','Gauss-Kruger CM 45E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 8N (code 16208), or for a restricted longitude range 3-degree Gauss-Kruger zone 15N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',45.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16308','Gauss-Kruger CM 45E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 8N (code 16208).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',45.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12292','conversion','EPSG','16308','EPSG','1947','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16309','Gauss-Kruger CM 51E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 9N (code 16209), or for a restricted longitude range 3-degree Gauss-Kruger zone 17N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',51.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16309','Gauss-Kruger CM 51E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 9N (code 16209).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',51.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12293','conversion','EPSG','16309','EPSG','1949','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16310','Gauss-Kruger CM 57E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 10N (code 16210), or for a restricted longitude range 3-degree Gauss-Kruger zone 19N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',57.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16310','Gauss-Kruger CM 57E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 10N (code 16210).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',57.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12294','conversion','EPSG','16310','EPSG','1951','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16311','Gauss-Kruger CM 63E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 11N (code 16211), or for a restricted longitude range 3-degree Gauss-Kruger zone 21N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',63.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16311','Gauss-Kruger CM 63E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 11N (code 16211).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',63.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12295','conversion','EPSG','16311','EPSG','1953','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16312','Gauss-Kruger CM 69E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 12N (code 16212), or for a restricted longitude range 3-degree Gauss-Kruger zone 23N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',69.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16312','Gauss-Kruger CM 69E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 12N (code 16212).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',69.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12296','conversion','EPSG','16312','EPSG','1955','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16313','Gauss-Kruger CM 75E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 13N (code 16213), or for a restricted longitude range 3-degree Gauss-Kruger zone 25N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',75.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16313','Gauss-Kruger CM 75E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 13N (code 16213).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',75.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12297','conversion','EPSG','16313','EPSG','1957','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16314','Gauss-Kruger CM 81E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 14N (code 16214), or for a restricted longitude range 3-degree Gauss-Kruger zone 27N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',81.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16314','Gauss-Kruger CM 81E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 14N (code 16214).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',81.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12298','conversion','EPSG','16314','EPSG','1959','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16315','Gauss-Kruger CM 87E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 15N (code 16215), or for a restricted longitude range 3-degree Gauss-Kruger zone 29N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',87.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16315','Gauss-Kruger CM 87E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 15N (code 16215).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',87.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12299','conversion','EPSG','16315','EPSG','1961','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16316','Gauss-Kruger CM 93E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 16N (code 16216), or for a restricted longitude range 3-degree Gauss-Kruger zone 31N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',93.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16316','Gauss-Kruger CM 93E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 16N (code 16216).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',93.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12300','conversion','EPSG','16316','EPSG','1963','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16317','Gauss-Kruger CM 99E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 17N (code 16217), or for a restricted longitude range 3-degree Gauss-Kruger zone 33N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',99.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16317','Gauss-Kruger CM 99E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 17N (code 16217).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',99.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12301','conversion','EPSG','16317','EPSG','1965','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16318','Gauss-Kruger CM 105E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 18N (code 16218), or for a restricted longitude range 3-degree Gauss-Kruger zone 35N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',105.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16318','Gauss-Kruger CM 105E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 18N (code 16218).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',105.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12302','conversion','EPSG','16318','EPSG','1967','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16319','Gauss-Kruger CM 111E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 19N (code 16219), or for a restricted longitude range 3-degree Gauss-Kruger zone 37N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',111.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16319','Gauss-Kruger CM 111E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 19N (code 16219).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',111.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12303','conversion','EPSG','16319','EPSG','1969','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16320','Gauss-Kruger CM 117E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 20N (code 16220), or for a restricted longitude range 3-degree Gauss-Kruger zone 39N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',117.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16320','Gauss-Kruger CM 117E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 20N (code 16220).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',117.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12304','conversion','EPSG','16320','EPSG','1971','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16321','Gauss-Kruger CM 123E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 21N (code 16221), or for a restricted longitude range 3-degree Gauss-Kruger zone 41N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',123.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16321','Gauss-Kruger CM 123E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 21N (code 16221).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',123.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12305','conversion','EPSG','16321','EPSG','1973','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16322','Gauss-Kruger CM 129E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 22N (code 16222), or for a restricted longitude range 3-degree Gauss-Kruger zone 43N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',129.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16322','Gauss-Kruger CM 129E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 22N (code 16222).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',129.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12306','conversion','EPSG','16322','EPSG','1975','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16323','Gauss-Kruger CM 135E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 23N (code 16223), or for a restricted longitude range 3-degree Gauss-Kruger zone 45N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',135.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16323','Gauss-Kruger CM 135E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 23N (code 16223).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',135.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12307','conversion','EPSG','16323','EPSG','1977','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16324','Gauss-Kruger CM 141E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 24N (code 16224), or for a restricted longitude range 3-degree Gauss-Kruger zone 47N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',141.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16324','Gauss-Kruger CM 141E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 24N (code 16224).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',141.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12308','conversion','EPSG','16324','EPSG','1979','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16325','Gauss-Kruger CM 147E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 25N (code 16225), or for a restricted longitude range 3-degree Gauss-Kruger zone 49N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',147.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16325','Gauss-Kruger CM 147E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 25N (code 16225).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',147.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12309','conversion','EPSG','16325','EPSG','1981','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16326','Gauss-Kruger CM 153E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 26N (code 16226), or for a restricted longitude range 3-degree Gauss-Kruger zone 51N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',153.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16326','Gauss-Kruger CM 153E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 26N (code 16226).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',153.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12310','conversion','EPSG','16326','EPSG','1983','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16327','Gauss-Kruger CM 159E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 27N (code 16227), or for a restricted longitude range 3-degree Gauss-Kruger zone 53N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',159.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16327','Gauss-Kruger CM 159E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 27N (code 16227).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',159.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12311','conversion','EPSG','16327','EPSG','1985','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16328','Gauss-Kruger CM 165E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 28N (code 16228), or for a restricted longitude range 3-degree Gauss-Kruger zone 55N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',165.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16328','Gauss-Kruger CM 165E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 28N (code 16228).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',165.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12312','conversion','EPSG','16328','EPSG','1987','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16329','Gauss-Kruger CM 171E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 29N (code 16229), or for a restricted longitude range 3-degree Gauss-Kruger zone 57N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',171.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16329','Gauss-Kruger CM 171E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 29N (code 16229).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',171.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12313','conversion','EPSG','16329','EPSG','1989','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16330','Gauss-Kruger CM 177E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 30N (code 16230), or for a restricted longitude range 3-degree Gauss-Kruger zone 59N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',177.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16330','Gauss-Kruger CM 177E','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 30N (code 16230).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',177.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12314','conversion','EPSG','16330','EPSG','1991','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16331','Gauss-Kruger CM 177W','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 31N (code 16231), or for a restricted longitude range 3-degree Gauss-Kruger zone 61N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-177.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16331','Gauss-Kruger CM 177W','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 31N (code 16231).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-177.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12315','conversion','EPSG','16331','EPSG','1873','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16332','Gauss-Kruger CM 171W','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 32N (code 16232), or for a restricted longitude range 3-degree Gauss-Kruger zone 62N (code 16261). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-171.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16332','Gauss-Kruger CM 171W','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 32N (code 16232).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-171.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12316','conversion','EPSG','16332','EPSG','1875','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16333','Gauss-Kruger CM 165W','Usually used with zone prefix to FE - see 6-degree Gauss-Kruger zone 33N (code 16233). Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-165.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12317','conversion','EPSG','16333','EPSG','1877','EPSG','1211');
|
||||
@@ -3417,23 +3417,23 @@ INSERT INTO "conversion" VALUES('EPSG','16364','3-degree Gauss-Kruger CM 12E','3
|
||||
INSERT INTO "usage" VALUES('EPSG','12348','conversion','EPSG','16364','EPSG','2302','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16365','3-degree Gauss-Kruger CM 15E','3-degree Gauss-Kruger zone 5N (code 16265) without zone prefix to false easting value. Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',15.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1);
|
||||
INSERT INTO "usage" VALUES('EPSG','12349','conversion','EPSG','16365','EPSG','2303','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16366','3-degree Gauss-Kruger CM 18E','3-degree Gauss-Kruger zone 6N (code 16266) without zone prefix to false easting value. Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',18.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16366','3-degree Gauss-Kruger CM 18E','3-degree Gauss-Kruger zone 6N (code 16266) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',18.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12350','conversion','EPSG','16366','EPSG','2304','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16367','3-degree Gauss-Kruger CM 21E','3-degree Gauss-Kruger zone 7N (code 16267) without zone prefix to false easting value. Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',21.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1);
|
||||
INSERT INTO "usage" VALUES('EPSG','12351','conversion','EPSG','16367','EPSG','2305','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16368','3-degree Gauss-Kruger CM 24E','3-degree Gauss-Kruger zone 8N (code 16268) without zone prefix to false easting value. Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',24.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16368','3-degree Gauss-Kruger CM 24E','3-degree Gauss-Kruger zone 8N (code 16268) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',24.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12352','conversion','EPSG','16368','EPSG','2306','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16369','3-degree Gauss-Kruger CM 27E','3-degree Gauss-Kruger zone 9N (code 16269) without zone prefix to false easting value. Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',27.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1);
|
||||
INSERT INTO "usage" VALUES('EPSG','12353','conversion','EPSG','16369','EPSG','2534','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16370','3-degree Gauss-Kruger CM 30E','3-degree Gauss-Kruger zone 10N (code 16270) without zone prefix to false easting value. Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',30.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16370','3-degree Gauss-Kruger CM 30E','3-degree Gauss-Kruger zone 10N (code 16270) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',30.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12354','conversion','EPSG','16370','EPSG','2535','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16371','3-degree Gauss-Kruger CM 33E','3-degree Gauss-Kruger zone 11N (code 16271) without zone prefix to false easting value. Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',33.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1);
|
||||
INSERT INTO "usage" VALUES('EPSG','12355','conversion','EPSG','16371','EPSG','2536','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16372','3-degree Gauss-Kruger CM 36E','3-degree Gauss-Kruger zone 12N (code 16272) without zone prefix to false easting value. Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',36.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16372','3-degree Gauss-Kruger CM 36E','3-degree Gauss-Kruger zone 12N (code 16272) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',36.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12356','conversion','EPSG','16372','EPSG','2537','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16373','3-degree Gauss-Kruger CM 39E','3-degree Gauss-Kruger zone 13N (code 16273) without zone prefix to false easting value. Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',39.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1);
|
||||
INSERT INTO "usage" VALUES('EPSG','12357','conversion','EPSG','16373','EPSG','2538','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16374','3-degree Gauss-Kruger CM 42E','3-degree Gauss-Kruger zone 14N (code 16274) without zone prefix to false easting value. Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',42.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "conversion" VALUES('EPSG','16374','3-degree Gauss-Kruger CM 42E','3-degree Gauss-Kruger zone 14N (code 16274) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',42.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12358','conversion','EPSG','16374','EPSG','2539','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16375','3-degree Gauss-Kruger CM 45E','3-degree Gauss-Kruger zone 15N (code 16275) without zone prefix to false easting value. Original transformation by Gauss-Kruger formula.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',45.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1);
|
||||
INSERT INTO "usage" VALUES('EPSG','12359','conversion','EPSG','16375','EPSG','2540','EPSG','1055');
|
||||
@@ -3518,12 +3518,244 @@ INSERT INTO "conversion" VALUES('EPSG','16716','TM 116 SE','Used by BP for Teran
|
||||
INSERT INTO "usage" VALUES('EPSG','12398','conversion','EPSG','16716','EPSG','2588','EPSG','1136');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16732','TM 132 SE','Used for Tangguh developments.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',132.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',10000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12399','conversion','EPSG','16732','EPSG','2589','EPSG','1136');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16907','GSK 3-degree Gauss-Kruger zone 7','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 21E (code 17107).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',21.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',7250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16011','conversion','EPSG','16907','EPSG','2305','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16908','GSK 3-degree Gauss-Kruger zone 8','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 24E (code 17108).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',24.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',8250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16015','conversion','EPSG','16908','EPSG','2748','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16909','GSK 3-degree Gauss-Kruger zone 9','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 27E (code 17109).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',27.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',9250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16016','conversion','EPSG','16909','EPSG','2749','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16910','GSK 3-degree Gauss-Kruger zone 10','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 30E (code 17110).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',30.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',10250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16017','conversion','EPSG','16910','EPSG','2535','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16911','GSK 3-degree Gauss-Kruger zone 11','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 33E (code 17111).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',33.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',11250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16018','conversion','EPSG','16911','EPSG','2751','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16912','GSK 3-degree Gauss-Kruger zone 12','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 36E (code 17112).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',36.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',12250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16019','conversion','EPSG','16912','EPSG','2752','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16913','GSK 3-degree Gauss-Kruger zone 13','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 39E (code 17113).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',39.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',13250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16020','conversion','EPSG','16913','EPSG','2753','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16914','GSK 3-degree Gauss-Kruger zone 14','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 42E (code 17114).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',42.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',14250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16021','conversion','EPSG','16914','EPSG','2754','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16915','GSK 3-degree Gauss-Kruger zone 15','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 45E (code 17115).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',45.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',15250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16022','conversion','EPSG','16915','EPSG','2755','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16916','GSK 3-degree Gauss-Kruger zone 16','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 48E (code 17116).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',48.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',16250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16023','conversion','EPSG','16916','EPSG','2756','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16917','GSK 3-degree Gauss-Kruger zone 17','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 51E (code 17117).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',51.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',17250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16024','conversion','EPSG','16917','EPSG','2757','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16918','GSK 3-degree Gauss-Kruger zone 18','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 54E (code 17118).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',54.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',18250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16025','conversion','EPSG','16918','EPSG','2758','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16919','GSK 3-degree Gauss-Kruger zone 19','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 57E (code 17119).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',57.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',19250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16026','conversion','EPSG','16919','EPSG','2759','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16920','GSK 3-degree Gauss-Kruger zone 20','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 60E (code 17120).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',60.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',20250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16027','conversion','EPSG','16920','EPSG','2760','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16921','GSK 3-degree Gauss-Kruger zone 21','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 63E (code 17121).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',63.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',21250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16028','conversion','EPSG','16921','EPSG','2609','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16922','GSK 3-degree Gauss-Kruger zone 22','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 66E (code 17122).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',66.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',22250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15917','conversion','EPSG','16922','EPSG','2762','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16923','GSK 3-degree Gauss-Kruger zone 23','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 69E (code 17123).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',69.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',23250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15916','conversion','EPSG','16923','EPSG','2763','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16924','GSK 3-degree Gauss-Kruger zone 24','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 72E (code 17124).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',72.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',24250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15915','conversion','EPSG','16924','EPSG','2764','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16925','GSK 3-degree Gauss-Kruger zone 25','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 75E (code 17125).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',75.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',25250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15914','conversion','EPSG','16925','EPSG','2765','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16926','GSK 3-degree Gauss-Kruger zone 26','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 78E (code 17126).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',78.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',26250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15913','conversion','EPSG','16926','EPSG','2766','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16927','GSK 3-degree Gauss-Kruger zone 27','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 81E (code 17127).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',81.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',27250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15912','conversion','EPSG','16927','EPSG','2767','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16928','GSK 3-degree Gauss-Kruger zone 28','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 84E (code 17128).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',84.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',28250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15911','conversion','EPSG','16928','EPSG','2768','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16929','GSK 3-degree Gauss-Kruger zone 29','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 87E (code 17129).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',87.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',29250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15910','conversion','EPSG','16929','EPSG','2769','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16930','GSK 3-degree Gauss-Kruger zone 30','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 90E (code 17130).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',90.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',30250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15909','conversion','EPSG','16930','EPSG','2676','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16931','GSK 3-degree Gauss-Kruger zone 31','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 93E (code 17131).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',93.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',31250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15908','conversion','EPSG','16931','EPSG','2677','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16932','GSK 3-degree Gauss-Kruger zone 32','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 96E (code 17132).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',96.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',32250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15907','conversion','EPSG','16932','EPSG','2678','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16933','GSK 3-degree Gauss-Kruger zone 33','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 99E (code 17133).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',99.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',33250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15925','conversion','EPSG','16933','EPSG','2679','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16934','GSK 3-degree Gauss-Kruger zone 34','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 102E (code 17134).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',102.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',34250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15926','conversion','EPSG','16934','EPSG','2680','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16935','GSK 3-degree Gauss-Kruger zone 35','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 105E (code 17135).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',105.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',35250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15927','conversion','EPSG','16935','EPSG','2681','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16936','GSK 3-degree Gauss-Kruger zone 36','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 108E (code 17136).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',108.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',36250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15928','conversion','EPSG','16936','EPSG','2682','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16937','GSK 3-degree Gauss-Kruger zone 37','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 111E (code 17137).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',111.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',37250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15938','conversion','EPSG','16937','EPSG','2683','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16938','GSK 3-degree Gauss-Kruger zone 38','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 114E (code 17138).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',114.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',38250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15939','conversion','EPSG','16938','EPSG','2684','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16939','GSK 3-degree Gauss-Kruger zone 39','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 117E (code 17139).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',117.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',39250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15940','conversion','EPSG','16939','EPSG','2685','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16940','GSK 3-degree Gauss-Kruger zone 40','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 120E (code 17140).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',120.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',40250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15941','conversion','EPSG','16940','EPSG','2686','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16941','GSK 3-degree Gauss-Kruger zone 41','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 123E (code 17141).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',123.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',41250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15942','conversion','EPSG','16941','EPSG','2687','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16942','GSK 3-degree Gauss-Kruger zone 42','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 126E (code 17142).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',126.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',42250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15943','conversion','EPSG','16942','EPSG','2688','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16943','GSK 3-degree Gauss-Kruger zone 43','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 129E (code 17143).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',129.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',43250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15944','conversion','EPSG','16943','EPSG','2689','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16944','GSK 3-degree Gauss-Kruger zone 44','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 132E (code 17144).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',132.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',44250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15945','conversion','EPSG','16944','EPSG','2690','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16945','GSK 3-degree Gauss-Kruger zone 45','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 135E (code 17145).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',135.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',45250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15946','conversion','EPSG','16945','EPSG','2691','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16946','GSK 3-degree Gauss-Kruger zone 46','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 138E (code 17146).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',138.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',46250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15947','conversion','EPSG','16946','EPSG','2692','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16947','GSK 3-degree Gauss-Kruger zone 47','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 141E (code 17147).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',141.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',47250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15948','conversion','EPSG','16947','EPSG','2693','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16948','GSK 3-degree Gauss-Kruger zone 48','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 144E (code 17148).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',144.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',48250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15949','conversion','EPSG','16948','EPSG','2694','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16949','GSK 3-degree Gauss-Kruger zone 49','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 147E (code 17149).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',147.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',49250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15950','conversion','EPSG','16949','EPSG','2695','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16950','GSK 3-degree Gauss-Kruger zone 50','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 150E (code 17150).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',150.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',50250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15951','conversion','EPSG','16950','EPSG','2696','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16951','GSK 3-degree Gauss-Kruger zone 51','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 153E (code 17151).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',153.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',51250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15983','conversion','EPSG','16951','EPSG','2697','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16952','GSK 3-degree Gauss-Kruger zone 52','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 156E (code 17152).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',156.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',52250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15984','conversion','EPSG','16952','EPSG','2698','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16953','GSK 3-degree Gauss-Kruger zone 53','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 159E (code 17153).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',159.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',53250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15985','conversion','EPSG','16953','EPSG','2699','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16954','GSK 3-degree Gauss-Kruger zone 54','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 162E (code 17154).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',162.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',54250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15986','conversion','EPSG','16954','EPSG','2700','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16955','GSK 3-degree Gauss-Kruger zone 55','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 165E (code 17155).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',165.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',55250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15987','conversion','EPSG','16955','EPSG','2701','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16956','GSK 3-degree Gauss-Kruger zone 56','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 168E (code 17156).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',168.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',56250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15988','conversion','EPSG','16956','EPSG','2702','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16957','GSK 3-degree Gauss-Kruger zone 57','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 171E (code 17157).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',171.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',57250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15989','conversion','EPSG','16957','EPSG','2703','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16958','GSK 3-degree Gauss-Kruger zone 58','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 174E (code 17158).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',174.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',58250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15990','conversion','EPSG','16958','EPSG','2704','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16959','GSK 3-degree Gauss-Kruger zone 59','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 177E (code 17159).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',177.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',59250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15994','conversion','EPSG','16959','EPSG','2705','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16960','GSK 3-degree Gauss-Kruger zone 60','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 180 (code 17160).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',180.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',60250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15991','conversion','EPSG','16960','EPSG','2706','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16961','GSK 3-degree Gauss-Kruger zone 61','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 177W (code 17161).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-177.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',61250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15992','conversion','EPSG','16961','EPSG','2707','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16962','GSK 3-degree Gauss-Kruger zone 62','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 174W (code 17162).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-174.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',62250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15993','conversion','EPSG','16962','EPSG','2708','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16963','GSK 3-degree Gauss-Kruger zone 63','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 171W (code 17163).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-171.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',63250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15995','conversion','EPSG','16963','EPSG','2709','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','16964','GSK 3-degree Gauss-Kruger zone 64','Also found with zone truncated from false easting: see GSK 3-degree Gauss-Kruger CM 168W (code 17164).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-168.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',64250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15996','conversion','EPSG','16964','EPSG','2710','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17001','TM 1 NW','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-1.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12400','conversion','EPSG','17001','EPSG','1505','EPSG','1136');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17005','TM 5 NW','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-5.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12401','conversion','EPSG','17005','EPSG','2296','EPSG','1136');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17054','TM 54 NW','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-54.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12402','conversion','EPSG','17054','EPSG','1727','EPSG','1136');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17107','GSK 3-degree Gauss-Kruger CM 21E','GSK 3-degree Gauss-Kruger zone 7N (code 16907) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',21.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16012','conversion','EPSG','17107','EPSG','2305','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17108','GSK 3-degree Gauss-Kruger CM 24E','GSK 3-degree Gauss-Kruger zone 8N (code 16908) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',24.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16029','conversion','EPSG','17108','EPSG','2748','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17109','GSK 3-degree Gauss-Kruger CM 27E','GSK 3-degree Gauss-Kruger zone 9N (code 16909) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',27.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16030','conversion','EPSG','17109','EPSG','2749','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17110','GSK 3-degree Gauss-Kruger CM 30E','GSK 3-degree Gauss-Kruger zone 10N (code 16910) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',30.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16031','conversion','EPSG','17110','EPSG','2750','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17111','GSK 3-degree Gauss-Kruger CM 33E','GSK 3-degree Gauss-Kruger zone 11N (code 16911) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',33.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16032','conversion','EPSG','17111','EPSG','2751','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17112','GSK 3-degree Gauss-Kruger CM 36E','GSK 3-degree Gauss-Kruger zone 12N (code 16912) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',36.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16033','conversion','EPSG','17112','EPSG','2752','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17113','GSK 3-degree Gauss-Kruger CM 39E','GSK 3-degree Gauss-Kruger zone 13N (code 16913) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',39.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16034','conversion','EPSG','17113','EPSG','2753','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17114','GSK 3-degree Gauss-Kruger CM 42E','GSK 3-degree Gauss-Kruger zone 14N (code 16914) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',42.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16035','conversion','EPSG','17114','EPSG','2754','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17115','GSK 3-degree Gauss-Kruger CM 45E','GSK 3-degree Gauss-Kruger zone 15N (code 16915) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',45.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16036','conversion','EPSG','17115','EPSG','2755','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17116','GSK 3-degree Gauss-Kruger CM 48E','GSK 3-degree Gauss-Kruger zone 16N (code 16916) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',48.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16037','conversion','EPSG','17116','EPSG','2756','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17117','GSK 3-degree Gauss-Kruger CM 51E','GSK 3-degree Gauss-Kruger zone 17N (code 16917) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',51.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16040','conversion','EPSG','17117','EPSG','2757','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17118','GSK 3-degree Gauss-Kruger CM 54E','GSK 3-degree Gauss-Kruger zone 18N (code 16918) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',54.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16041','conversion','EPSG','17118','EPSG','2758','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17119','GSK 3-degree Gauss-Kruger CM 57E','GSK 3-degree Gauss-Kruger zone 19N (code 16919) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',57.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16039','conversion','EPSG','17119','EPSG','2759','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17120','GSK 3-degree Gauss-Kruger CM 60E','GSK 3-degree Gauss-Kruger zone 20N (code 16920) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',60.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16038','conversion','EPSG','17120','EPSG','2760','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17121','GSK 3-degree Gauss-Kruger CM 63E','GSK 3-degree Gauss-Kruger zone 21N (code 16921) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',63.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16042','conversion','EPSG','17121','EPSG','2761','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17122','GSK 3-degree Gauss-Kruger CM 66E','GSK 3-degree Gauss-Kruger zone 22N (code 16922) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',66.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15933','conversion','EPSG','17122','EPSG','2762','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17123','GSK 3-degree Gauss-Kruger CM 69E','GSK 3-degree Gauss-Kruger zone 23N (code 16923) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',69.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15937','conversion','EPSG','17123','EPSG','2763','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17124','GSK 3-degree Gauss-Kruger CM 72E','GSK 3-degree Gauss-Kruger zone 24N (code 16924) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',72.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15936','conversion','EPSG','17124','EPSG','2764','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17125','GSK 3-degree Gauss-Kruger CM 75E','GSK 3-degree Gauss-Kruger zone 25N (code 16925) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',75.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15935','conversion','EPSG','17125','EPSG','2765','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17126','GSK 3-degree Gauss-Kruger CM 78E','GSK 3-degree Gauss-Kruger zone 26N (code 16926) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',78.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15934','conversion','EPSG','17126','EPSG','2766','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17127','GSK 3-degree Gauss-Kruger CM 81E','GSK 3-degree Gauss-Kruger zone 27N (code 16927) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',81.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15932','conversion','EPSG','17127','EPSG','2767','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17128','GSK 3-degree Gauss-Kruger CM 84E','GSK 3-degree Gauss-Kruger zone 28N (code 16928) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',84.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15931','conversion','EPSG','17128','EPSG','2768','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17129','GSK 3-degree Gauss-Kruger CM 87E','GSK 3-degree Gauss-Kruger zone 29N (code 16929) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',87.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15930','conversion','EPSG','17129','EPSG','2769','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17130','GSK 3-degree Gauss-Kruger CM 90E','GSK 3-degree Gauss-Kruger zone 30N (code 16930) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',90.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15929','conversion','EPSG','17130','EPSG','2676','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17131','GSK 3-degree Gauss-Kruger CM 93E','GSK 3-degree Gauss-Kruger zone 31N (code 16931) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',93.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15923','conversion','EPSG','17131','EPSG','2677','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17132','GSK 3-degree Gauss-Kruger CM 96E','GSK 3-degree Gauss-Kruger zone 32N (code 16932) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',96.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15924','conversion','EPSG','17132','EPSG','2678','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17133','GSK 3-degree Gauss-Kruger CM 99E','GSK 3-degree Gauss-Kruger zone 33N (code 16933) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',99.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15921','conversion','EPSG','17133','EPSG','2679','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17134','GSK 3-degree Gauss-Kruger CM 102E','GSK 3-degree Gauss-Kruger zone 34N (code 16934) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',102.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15920','conversion','EPSG','17134','EPSG','2680','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17135','GSK 3-degree Gauss-Kruger CM 105E','GSK 3-degree Gauss-Kruger zone 35N (code 16935) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',105.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15919','conversion','EPSG','17135','EPSG','2681','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17136','GSK 3-degree Gauss-Kruger CM 108E','GSK 3-degree Gauss-Kruger zone 36N (code 16936) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',108.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15918','conversion','EPSG','17136','EPSG','2682','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17137','GSK 3-degree Gauss-Kruger CM 111E','GSK 3-degree Gauss-Kruger zone 37N (code 16937) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',111.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15953','conversion','EPSG','17137','EPSG','2683','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17138','GSK 3-degree Gauss-Kruger CM 114E','GSK 3-degree Gauss-Kruger zone 38N (code 16938) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',114.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15954','conversion','EPSG','17138','EPSG','2684','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17139','GSK 3-degree Gauss-Kruger CM 117E','GSK 3-degree Gauss-Kruger zone 39N (code 16939) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',117.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15955','conversion','EPSG','17139','EPSG','2685','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17140','GSK 3-degree Gauss-Kruger CM 120E','GSK 3-degree Gauss-Kruger zone 40N (code 16940) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',120.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15956','conversion','EPSG','17140','EPSG','2686','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17141','GSK 3-degree Gauss-Kruger CM 123E','GSK 3-degree Gauss-Kruger zone 41N (code 16941) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',123.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15957','conversion','EPSG','17141','EPSG','2687','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17142','GSK 3-degree Gauss-Kruger CM 126E','GSK 3-degree Gauss-Kruger zone 42N (code 16942) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',126.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15958','conversion','EPSG','17142','EPSG','2688','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17143','GSK 3-degree Gauss-Kruger CM 129E','GSK 3-degree Gauss-Kruger zone 43N (code 16943) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',129.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15959','conversion','EPSG','17143','EPSG','2689','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17144','GSK 3-degree Gauss-Kruger CM 132E','GSK 3-degree Gauss-Kruger zone 44N (code 16944) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',132.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15960','conversion','EPSG','17144','EPSG','2690','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17145','GSK 3-degree Gauss-Kruger CM 135E','GSK 3-degree Gauss-Kruger zone 45N (code 16945) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',135.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15961','conversion','EPSG','17145','EPSG','2691','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17146','GSK 3-degree Gauss-Kruger CM 138E','GSK 3-degree Gauss-Kruger zone 46N (code 16946) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',138.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15962','conversion','EPSG','17146','EPSG','2692','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17147','GSK 3-degree Gauss-Kruger CM 141E','GSK 3-degree Gauss-Kruger zone 47N (code 16947) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',141.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15963','conversion','EPSG','17147','EPSG','2693','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17148','GSK 3-degree Gauss-Kruger CM 144E','GSK 3-degree Gauss-Kruger zone 48N (code 16948) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',144.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15964','conversion','EPSG','17148','EPSG','2694','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17149','GSK 3-degree Gauss-Kruger CM 147E','GSK 3-degree Gauss-Kruger zone 49N (code 16949) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',147.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15965','conversion','EPSG','17149','EPSG','2695','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17150','GSK 3-degree Gauss-Kruger CM 150E','GSK 3-degree Gauss-Kruger zone 50N (code 16950) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',150.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15966','conversion','EPSG','17150','EPSG','2696','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17151','GSK 3-degree Gauss-Kruger CM 153E','GSK 3-degree Gauss-Kruger zone 51N (code 16951) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',153.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15997','conversion','EPSG','17151','EPSG','2697','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17152','GSK 3-degree Gauss-Kruger CM 156E','GSK 3-degree Gauss-Kruger zone 52N (code 16952) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',156.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15998','conversion','EPSG','17152','EPSG','2698','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17153','GSK 3-degree Gauss-Kruger CM 159E','GSK 3-degree Gauss-Kruger zone 53N (code 16953) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',159.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15999','conversion','EPSG','17153','EPSG','2699','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17154','GSK 3-degree Gauss-Kruger CM 162E','GSK 3-degree Gauss-Kruger zone 54N (code 16954) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',162.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16000','conversion','EPSG','17154','EPSG','2700','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17155','GSK 3-degree Gauss-Kruger CM 165E','GSK 3-degree Gauss-Kruger zone 55N (code 16955) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',165.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16001','conversion','EPSG','17155','EPSG','2701','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17156','GSK 3-degree Gauss-Kruger CM 168E','GSK 3-degree Gauss-Kruger zone 56N (code 16956) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',168.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16002','conversion','EPSG','17156','EPSG','2702','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17157','GSK 3-degree Gauss-Kruger CM 171E','GSK 3-degree Gauss-Kruger zone 57N (code 16957) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',171.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16003','conversion','EPSG','17157','EPSG','2703','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17158','GSK 3-degree Gauss-Kruger CM 174E','GSK 3-degree Gauss-Kruger zone 58N (code 16958) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',174.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16004','conversion','EPSG','17158','EPSG','2704','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17159','GSK 3-degree Gauss-Kruger CM 177E','GSK 3-degree Gauss-Kruger zone 59N (code 16959) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',177.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16005','conversion','EPSG','17159','EPSG','2705','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17160','GSK 3-degree Gauss-Kruger CM 180E','GSK 3-degree Gauss-Kruger zone 60N (code 16960) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',180.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16482','conversion','EPSG','17160','EPSG','2706','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17161','GSK 3-degree Gauss-Kruger CM 177W','GSK 3-degree Gauss-Kruger zone 61N (code 16961) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-177.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16007','conversion','EPSG','17161','EPSG','2707','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17162','GSK 3-degree Gauss-Kruger CM 174W','GSK 3-degree Gauss-Kruger zone 62N (code 16962) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-174.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16008','conversion','EPSG','17162','EPSG','2708','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17163','GSK 3-degree Gauss-Kruger CM 171W','GSK 3-degree Gauss-Kruger zone 63N (code 16963) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-171.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16009','conversion','EPSG','17163','EPSG','2709','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17164','GSK 3-degree Gauss-Kruger CM 168W','GSK 3-degree Gauss-Kruger zone 64N (code 16964) without zone prefix to false easting value.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-168.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16010','conversion','EPSG','17164','EPSG','2710','EPSG','1055');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17204','SCAR IMW SP19-20','After: Sievers, J. and H. Bennat (1989). "Reference systems of maps and geographic information systems of Antarctica." Antarctic Science 1(4): 351-362.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',-90.0,'EPSG','9102','EPSG','8822','Longitude of false origin',-66.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',-60.4,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',-63.2,'EPSG','9110','EPSG','8826','Easting at false origin',0.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','12403','conversion','EPSG','17204','EPSG','2991','EPSG','1211');
|
||||
INSERT INTO "conversion" VALUES('EPSG','17205','SCAR IMW SP21-22','After: Sievers, J. and H. Bennat (1989). "Reference systems of maps and geographic information systems of Antarctica." Antarctic Science 1(4): 351-362.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',-90.0,'EPSG','9102','EPSG','8822','Longitude of false origin',-54.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',-60.4,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',-63.2,'EPSG','9110','EPSG','8826','Easting at false origin',0.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
|
||||
+10
-10
@@ -3150,10 +3150,10 @@ INSERT INTO "extent" VALUES('EPSG','4170','Japan - northern Honshu','Japan - nor
|
||||
INSERT INTO "extent" VALUES('EPSG','4171','Northern Mariana Islands - Rota, Saipan and Tinian','Northern Mariana Islands - onshore - Rota, Saipan and Tinian.',14.06,15.35,145.06,145.89,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4172','Falkland Islands - offshore 63°W to 57°W','Falkland Islands (Malvinas) - offshore - between 63°W and 57°W.',-56.25,-47.68,-63.01,-56.99,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4173','Heard Island and McDonald Islands - west of 66°E','Heard Island and McDonald Islands - offshore west of 66°E.',-57.5,-53.43,62.92,66.0,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4174','Australia','Australia - onshore and offshore. Includes Lord Howe Island, Macquarie Islands, Ashmore and Cartier Islands.',-60.56,-8.88,105.8,164.7,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4174','Australia','Australia - onshore and offshore. Includes Lord Howe Island, Macquarie Island, Ashmore and Cartier Islands.',-60.55,-8.88,105.8,164.69,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4175','Australasia - Australia and Norfolk Island - 162°E to 168°E','Australia - offshore east of 162°E. Norfolk Island - onshore and offshore west of 168°E.',-59.39,-25.94,162.0,168.0,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4176','Australasia - Australia and Christmas Island - 108°E to 114°E','Australia - onshore and offshore west of 114°E. Christmas Island - offshore east of 108°E.',-37.84,-10.72,108.0,114.01,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4177','Australia - GDA','Australia including Lord Howe Island, Macquarie Islands, Ashmore and Cartier Islands, Christmas Island, Cocos (Keeling) Islands, Norfolk Island. All onshore and offshore.',-60.56,-8.47,93.41,173.35,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4177','Australia - GDA','Australia including Lord Howe Island, Macquarie Island, Ashmore and Cartier Islands, Christmas Island, Cocos (Keeling) Islands, Norfolk Island. All onshore and offshore.',-60.55,-8.47,93.41,173.34,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4178','Australia - 114°E to 120°E','Australia - onshore and offshore between 114°E and 120°E.',-38.53,-12.06,114.0,120.01,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4179','Norfolk Island - east of 168°E','Norfolk Island - offshore east of 168°E.',-32.48,-25.61,168.0,173.35,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4180','USA - Oregon - Baker City','United States (USA) - Oregon - Baker City area.',44.6,45.19,-118.15,-117.37,0);
|
||||
@@ -3172,7 +3172,7 @@ INSERT INTO "extent" VALUES('EPSG','4192','USA - Oregon - Bend-Klamath Falls','U
|
||||
INSERT INTO "extent" VALUES('EPSG','4193','Vietnam - west of 103°30''E onshore','Vietnam - onshore west of 103°30''E.',9.2,22.82,102.14,103.51,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4194','Japan onshore excluding northern main province','Japan - onshore, excluding northern prefectures of ''main province'' (see remarks).',20.37,45.54,122.83,154.05,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4195','USA - Oregon - Bend-Redmond-Prineville','United States (USA) - Oregon - Bend-Redmond-Prineville area.',43.76,44.98,-121.88,-119.79,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4196','Australia and Macquarie - 156°E to 162°E','Australia including Lord Howe Island and Macquarie Islands - onshore and offshore between 156°E and 162°E.',-60.56,-14.08,156.0,162.01,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4196','Australia - 156°E to 162°E including Macquarie','Australia including Lord Howe Island and Macquarie Island - onshore and offshore between 156°E and 162°E.',-60.55,-14.08,156.0,162.0,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4197','USA - Oregon - Eugene','United States (USA) - Oregon - Eugene area.',43.74,44.71,-123.8,-122.18,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4198','USA - Oregon - Grants Pass-Ashland','United States (USA) - Oregon - Grants Pass-Ashland area.',41.88,42.85,-123.95,-122.37,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4199','USA - Oregon - Canyonville-Grants Pass','United States (USA) - Oregon - Canyonville-Grants Pass area.',42.49,43.24,-123.83,-122.43,0);
|
||||
@@ -3557,14 +3557,14 @@ INSERT INTO "extent" VALUES('EPSG','4578','Argentina - 67.5°W to 64.5°W mainla
|
||||
INSERT INTO "extent" VALUES('EPSG','4579','Argentina - 64.5°W to 61.5°W mainland onshore','Argentina - between 64°30''W and 61°30''W, onshore mainland.',-43.14,-21.99,-64.5,-61.49,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4580','Germany - Baden-Wurttemberg','Germany - Baden-Wurttemberg.',47.54,49.8,7.51,10.5,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4581','Africa - Morocco and Western Sahara - onshore','Africa - Morocco and Western Sahara - onshore.',20.71,35.97,-17.16,-1.01,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4582','UK - London to Birmingham and Crewe','UK - HS2 phases 1 and 2a railway corridor from London to Birmingham, Lichfield and Crewe.',51.45,53.3,-2.75,0.0,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4583','UK - Liverpool to Leeds','UK - on or related to the Trans-Pennine rail route from Liverpool via Manchester to Bradford and Leeds.',53.32,53.9,-3.14,-1.34,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4582','UK - London to Birmingham and Crewe','United Kingdom (UK) - HS2 phases 1 and 2a railway corridor from London to Birmingham, Lichfield and Crewe.',51.45,53.3,-2.75,0.0,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4583','UK - Liverpool to Leeds','United Kingdom (UK) - on or related to the Trans-Pennine rail route from Liverpool via Manchester to Bradford and Leeds.',53.32,53.9,-3.14,-1.35,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4584','Germany - Saarland','Germany - Saarland.',49.11,49.64,6.35,7.41,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4585','Austria - Vienna','Austria - Vienna city state.',48.12,48.34,16.18,16.59,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4586','World - south of 50°S','Southern hemisphere - south of 50°S onshore and offshore, including Antarctica.',-90.0,-50.0,-180.0,180.0,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4587','Congo DR (Zaire) - 6th parallel south 21.5°E to 23°E','The Democratic Republic of the Congo (Zaire) - adjacent to 6th parallel south traverse between 21°30''E and 23°E.',-7.31,-5.31,21.5,23.01,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4588','UK - London to Sheffield','UK - on or related to the Midland Mainline rail route from Sheffield to London.',51.46,53.42,-1.89,0.16,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4589','UK - Aberdeen to Inverness','UK - on or related to the A96 highway from Aberdeen to Inverness.',57.1,57.71,-4.31,-2.1,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4588','UK - London to Sheffield','United Kingdom (UK) - on or related to the Midland Mainline rail route from Sheffield to London.',51.46,53.41,-1.89,0.15,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4589','UK - Aberdeen to Inverness','United Kingdom (UK) - on or related to the A96 highway from Aberdeen to Inverness.',57.1,57.7,-4.3,-2.1,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4590','Spain - Ceuta','Spain - Ceuta onshore.',35.82,35.97,-5.4,-5.24,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4591','Spain - Canary Islands - Lanzarote','Spain - Canary Islands - Lanzarote onshore.',28.78,29.47,-13.95,-13.37,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4592','Spain - Canary Islands - Fuerteventura','Spain - Canary Islands - Fuerteventura onshore.',27.99,28.81,-14.58,-13.75,0);
|
||||
@@ -3582,7 +3582,7 @@ INSERT INTO "extent" VALUES('EPSG','4603','Spain - Balearic Islands - Menorca','
|
||||
INSERT INTO "extent" VALUES('EPSG','4604','Spain - Balearic Islands - Ibiza and Formentera','Spain - Balearic Islands - Ibiza and Formentera - onshore.',38.59,39.17,1.12,1.68,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4605','Spain - mainland onshore and Ceuta','Spain - mainland and Ceuta - onshore.',35.82,43.82,-9.37,3.39,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4606','Europe - British Isles - UK and Ireland onshore, UKCS','United Kingdom (UK) - offshore to boundary of UKCS within 49°45''N to 61°N and 9°W to 2°E; onshore Great Britain (England, Wales and Scotland) and Northern Ireland. Ireland onshore. Isle of Man onshore.',49.75,61.01,-9.0,2.01,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4607','UK - Glasgow to Kilmarnock','UK - on or related to the rail route from Glasgow via Barrhead to Kilmarnock and the branch to East Kilbride.',55.55,55.95,-4.65,-4.05,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4607','UK - Glasgow to Kilmarnock','United Kingdom (UK) - on or related to the rail route from Glasgow to Kilmarnock via Barrhead and the branch to East Kilbride.',55.55,55.95,-4.65,-4.05,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4608','Europe - EVRF2019','Europe - onshore - Andorra; Austria; Belarus; Belgium; Bosnia and Herzegovina; Bulgaria; Croatia; Czechia; Denmark; Estonia; Finland; France - mainland; Germany; Gibraltar, Hungary; Italy - mainland and Sicily; Latvia; Liechtenstein; Lithuania; Luxembourg; Netherlands; North Macedonia; Norway; Poland; Portugal - mainland; Romania; Russia – west of approximately 60°E; San Marino; Slovakia; Slovenia; Spain - mainland; Sweden; Switzerland; United Kingdom (UK) - Great Britain mainland; Ukraine; Vatican City State.',35.95,77.07,-9.56,69.15,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4609','Europe - ETRF EVRF2019','Europe - onshore - Andorra; Austria; Belgium; Bosnia and Herzegovina; Bulgaria; Croatia; Czechia; Denmark; Estonia; Finland; France - mainland; Germany; Gibraltar, Hungary; Italy - mainland and Sicily; Latvia; Liechtenstein; Lithuania; Luxembourg; Netherlands; North Macedonia; Norway; Poland; Portugal - mainland; Romania; San Marino; Slovakia; Slovenia; Spain - mainland; Sweden; Switzerland; United Kingdom (UK) - Great Britain mainland; Vatican City State.',35.95,71.21,-9.56,31.59,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4610','Argentina - Buenos Aires city','Argentina - autonomous city of Buenos Aires.',-34.71,-34.5,-58.54,-58.29,0);
|
||||
@@ -3591,8 +3591,8 @@ INSERT INTO "extent" VALUES('EPSG','4612','Canada - Newfoundland','Canada - Newf
|
||||
INSERT INTO "extent" VALUES('EPSG','4613','Europe - Lyon-Turin','France and Italy - on or related to the rail route from Lyon to Turin.',44.87,45.89,4.65,7.88,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4614','Argentina - Comodoro Rivadavia - west of 67.5°W','Argentina - Comodoro Rivadavia area west of 67°30''W.',-46.7,-45.19,-69.5,-67.5,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4615','Norway, Svalbard and Jan Mayen - offshore','Norway (offshore) and Svalbard and Jan Mayen (offshore).',56.08,84.73,-13.63,38.0,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4616','UK - Great Britain onshore; Isle of Man','United Kingdom (UK) - Great Britain - England, Scotland and Wales onshore; Isle of Man onshore.',49.81,60.93,-8.69,1.91,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4616','UK - Great Britain onshore; Isle of Man','United Kingdom (UK) - Great Britain - England, Scotland and Wales onshore; Isle of Man onshore.',49.81,60.93,-8.69,1.9,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4617','Canada - east of 42°W','Canada offshore Atlantic - east of 42°W.',45.53,49.53,-42.0,-40.73,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4618','Canada - 41°N to 85°N, west of 50°W','Canada - onshore and offshore between 41°N and 85°N and west of 50°W - Alberta; British Columbia; Manitoba; New Brunswick; Newfoundland and Labrador; Northwest Territories; Nova Scotia; Nunavut; Ontario; Prince Edward Island; Quebec; Saskatchewan; Yukon.',41.0,85.0,-141.01,-50.0,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4619','Italy - 6°22''E to 18°40''E and north of 35°16''N; San Marino, Vatican City State','Italy - onshore and offshore between 6°22''E and 18°40''E and north of 35°16''N; San Marino, Vatican City State.',35.26,47.1,6.36,18.67,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4620','UK - Tweedmouth to Aberdeen','On or related to the complex of rail routes in the East of Scotland, incorporating the route from Tweedbank through the Borders to Edinburgh; the line from Edinburgh to Aberdeen; routes via Kirkaldy and Cowdenbeath; and routes via Leuchars and Perth to Dundee. ',55.55,57.2,-3.55,-1.95,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4620','UK - Tweedmouth to Aberdeen','United Kingdom (UK) - on or related to the complex of rail routes in the East of Scotland, incorporating the route from Tweedbank through the Borders to Edinburgh; the line from Edinburgh to Aberdeen; routes via Kirkaldy and Cowdenbeath; and routes via Leuchars and Perth to Dundee. ',55.55,57.2,-3.55,-1.95,0);
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MAJOR', 1);
|
||||
INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MINOR', 1);
|
||||
|
||||
INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v10.027');
|
||||
INSERT INTO "metadata" VALUES('EPSG.DATE', '2021-06-17');
|
||||
INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v10.028');
|
||||
INSERT INTO "metadata" VALUES('EPSG.DATE', '2021-07-07');
|
||||
|
||||
-- The value of ${PROJ_VERSION} is substituted at build time by the actual
|
||||
-- value.
|
||||
|
||||
@@ -7663,10 +7663,242 @@ INSERT INTO "projected_crs" VALUES('EPSG','21149','Batavia / UTM zone 49S',NULL,
|
||||
INSERT INTO "usage" VALUES('EPSG','6285','projected_crs','EPSG','21149','EPSG','1586','EPSG','1142');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21150','Batavia / UTM zone 50S',NULL,'EPSG','4400','EPSG','4211','EPSG','16150',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','6286','projected_crs','EPSG','21150','EPSG','1585','EPSG','1142');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21207','GSK-2011 / GSK 3GK zone 7',NULL,'EPSG','4530','EPSG','7683','EPSG','16907',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16450','projected_crs','EPSG','21207','EPSG','2747','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21208','GSK-2011 / GSK 3GK zone 8',NULL,'EPSG','4530','EPSG','7683','EPSG','16908',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16452','projected_crs','EPSG','21208','EPSG','2748','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21209','GSK-2011 / GSK 3GK zone 9',NULL,'EPSG','4530','EPSG','7683','EPSG','16909',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16453','projected_crs','EPSG','21209','EPSG','2749','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21210','GSK-2011 / GSK 3GK zone 10',NULL,'EPSG','4530','EPSG','7683','EPSG','16910',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16454','projected_crs','EPSG','21210','EPSG','2750','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21211','GSK-2011 / GSK 3GK zone 11',NULL,'EPSG','4530','EPSG','7683','EPSG','16911',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16455','projected_crs','EPSG','21211','EPSG','2751','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21212','GSK-2011 / GSK 3GK zone 12',NULL,'EPSG','4530','EPSG','7683','EPSG','16912',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16456','projected_crs','EPSG','21212','EPSG','2752','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21213','GSK-2011 / GSK 3GK zone 13',NULL,'EPSG','4530','EPSG','7683','EPSG','16913',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16457','projected_crs','EPSG','21213','EPSG','2753','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21214','GSK-2011 / GSK 3GK zone 14',NULL,'EPSG','4530','EPSG','7683','EPSG','16914',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16458','projected_crs','EPSG','21214','EPSG','2754','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21215','GSK-2011 / GSK 3GK zone 15',NULL,'EPSG','4530','EPSG','7683','EPSG','16915',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16459','projected_crs','EPSG','21215','EPSG','2755','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21216','GSK-2011 / GSK 3GK zone 16',NULL,'EPSG','4530','EPSG','7683','EPSG','16916',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16460','projected_crs','EPSG','21216','EPSG','2756','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21217','GSK-2011 / GSK 3GK zone 17',NULL,'EPSG','4530','EPSG','7683','EPSG','16917',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16461','projected_crs','EPSG','21217','EPSG','2757','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21218','GSK-2011 / GSK 3GK zone 18',NULL,'EPSG','4530','EPSG','7683','EPSG','16918',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16462','projected_crs','EPSG','21218','EPSG','2758','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21219','GSK-2011 / GSK 3GK zone 19',NULL,'EPSG','4530','EPSG','7683','EPSG','16919',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16463','projected_crs','EPSG','21219','EPSG','2759','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21220','GSK-2011 / GSK 3GK zone 20',NULL,'EPSG','4530','EPSG','7683','EPSG','16920',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16464','projected_crs','EPSG','21220','EPSG','2760','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21221','GSK-2011 / GSK 3GK zone 21',NULL,'EPSG','4530','EPSG','7683','EPSG','16921',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16465','projected_crs','EPSG','21221','EPSG','2761','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21222','GSK-2011 / GSK 3GK zone 22',NULL,'EPSG','4530','EPSG','7683','EPSG','16922',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16420','projected_crs','EPSG','21222','EPSG','2762','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21223','GSK-2011 / GSK 3GK zone 23',NULL,'EPSG','4530','EPSG','7683','EPSG','16923',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16421','projected_crs','EPSG','21223','EPSG','2763','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21224','GSK-2011 / GSK 3GK zone 24',NULL,'EPSG','4530','EPSG','7683','EPSG','16924',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16422','projected_crs','EPSG','21224','EPSG','2764','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21225','GSK-2011 / GSK 3GK zone 25',NULL,'EPSG','4530','EPSG','7683','EPSG','16925',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16423','projected_crs','EPSG','21225','EPSG','2765','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21226','GSK-2011 / GSK 3GK zone 26',NULL,'EPSG','4530','EPSG','7683','EPSG','16926',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16424','projected_crs','EPSG','21226','EPSG','2766','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21227','GSK-2011 / GSK 3GK zone 27',NULL,'EPSG','4530','EPSG','7683','EPSG','16927',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16425','projected_crs','EPSG','21227','EPSG','2767','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21228','GSK-2011 / GSK 3GK zone 28',NULL,'EPSG','4530','EPSG','7683','EPSG','16928',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16426','projected_crs','EPSG','21228','EPSG','2768','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21229','GSK-2011 / GSK 3GK zone 29',NULL,'EPSG','4530','EPSG','7683','EPSG','16929',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16501','projected_crs','EPSG','21229','EPSG','2769','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21230','GSK-2011 / GSK 3GK zone 30',NULL,'EPSG','4530','EPSG','7683','EPSG','16930',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16502','projected_crs','EPSG','21230','EPSG','2676','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21231','GSK-2011 / GSK 3GK zone 31',NULL,'EPSG','4530','EPSG','7683','EPSG','16931',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16442','projected_crs','EPSG','21231','EPSG','2677','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21232','GSK-2011 / GSK 3GK zone 32',NULL,'EPSG','4530','EPSG','7683','EPSG','16932',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16443','projected_crs','EPSG','21232','EPSG','2678','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21233','GSK-2011 / GSK 3GK zone 33',NULL,'EPSG','4530','EPSG','7683','EPSG','16933',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16444','projected_crs','EPSG','21233','EPSG','2679','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21234','GSK-2011 / GSK 3GK zone 34',NULL,'EPSG','4530','EPSG','7683','EPSG','16934',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16445','projected_crs','EPSG','21234','EPSG','2680','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21235','GSK-2011 / GSK 3GK zone 35',NULL,'EPSG','4530','EPSG','7683','EPSG','16935',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16446','projected_crs','EPSG','21235','EPSG','2681','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21236','GSK-2011 / GSK 3GK zone 36',NULL,'EPSG','4530','EPSG','7683','EPSG','16936',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16447','projected_crs','EPSG','21236','EPSG','2682','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21237','GSK-2011 / GSK 3GK zone 37',NULL,'EPSG','4530','EPSG','7683','EPSG','16937',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16392','projected_crs','EPSG','21237','EPSG','2683','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21238','GSK-2011 / GSK 3GK zone 38',NULL,'EPSG','4530','EPSG','7683','EPSG','16938',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16393','projected_crs','EPSG','21238','EPSG','2684','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21239','GSK-2011 / GSK 3GK zone 39',NULL,'EPSG','4530','EPSG','7683','EPSG','16939',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16394','projected_crs','EPSG','21239','EPSG','2685','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21240','GSK-2011 / GSK 3GK zone 40',NULL,'EPSG','4530','EPSG','7683','EPSG','16940',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16395','projected_crs','EPSG','21240','EPSG','2686','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21241','GSK-2011 / GSK 3GK zone 41',NULL,'EPSG','4530','EPSG','7683','EPSG','16941',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16396','projected_crs','EPSG','21241','EPSG','2687','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21242','GSK-2011 / GSK 3GK zone 42',NULL,'EPSG','4530','EPSG','7683','EPSG','16942',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16397','projected_crs','EPSG','21242','EPSG','2688','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21243','GSK-2011 / GSK 3GK zone 43',NULL,'EPSG','4530','EPSG','7683','EPSG','16943',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16398','projected_crs','EPSG','21243','EPSG','2689','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21244','GSK-2011 / GSK 3GK zone 44',NULL,'EPSG','4530','EPSG','7683','EPSG','16944',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16399','projected_crs','EPSG','21244','EPSG','2690','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21245','GSK-2011 / GSK 3GK zone 45',NULL,'EPSG','4530','EPSG','7683','EPSG','16945',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16400','projected_crs','EPSG','21245','EPSG','2691','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21246','GSK-2011 / GSK 3GK zone 46',NULL,'EPSG','4530','EPSG','7683','EPSG','16946',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16401','projected_crs','EPSG','21246','EPSG','2692','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21247','GSK-2011 / GSK 3GK zone 47',NULL,'EPSG','4530','EPSG','7683','EPSG','16947',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16402','projected_crs','EPSG','21247','EPSG','2693','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21248','GSK-2011 / GSK 3GK zone 48',NULL,'EPSG','4530','EPSG','7683','EPSG','16948',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16403','projected_crs','EPSG','21248','EPSG','2694','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21249','GSK-2011 / GSK 3GK zone 49',NULL,'EPSG','4530','EPSG','7683','EPSG','16949',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16404','projected_crs','EPSG','21249','EPSG','2695','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21250','GSK-2011 / GSK 3GK zone 50',NULL,'EPSG','4530','EPSG','7683','EPSG','16950',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16405','projected_crs','EPSG','21250','EPSG','2696','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21251','GSK-2011 / GSK 3GK zone 51',NULL,'EPSG','4530','EPSG','7683','EPSG','16951',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16365','projected_crs','EPSG','21251','EPSG','2697','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21252','GSK-2011 / GSK 3GK zone 52',NULL,'EPSG','4530','EPSG','7683','EPSG','16952',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16366','projected_crs','EPSG','21252','EPSG','2698','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21253','GSK-2011 / GSK 3GK zone 53',NULL,'EPSG','4530','EPSG','7683','EPSG','16953',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16367','projected_crs','EPSG','21253','EPSG','2699','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21254','GSK-2011 / GSK 3GK zone 54',NULL,'EPSG','4530','EPSG','7683','EPSG','16954',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16368','projected_crs','EPSG','21254','EPSG','2700','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21255','GSK-2011 / GSK 3GK zone 55',NULL,'EPSG','4530','EPSG','7683','EPSG','16955',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16369','projected_crs','EPSG','21255','EPSG','2701','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21256','GSK-2011 / GSK 3GK zone 56',NULL,'EPSG','4530','EPSG','7683','EPSG','16956',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16370','projected_crs','EPSG','21256','EPSG','2702','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21257','GSK-2011 / GSK 3GK zone 57',NULL,'EPSG','4530','EPSG','7683','EPSG','16957',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16371','projected_crs','EPSG','21257','EPSG','2703','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21258','GSK-2011 / GSK 3GK zone 58',NULL,'EPSG','4530','EPSG','7683','EPSG','16958',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16372','projected_crs','EPSG','21258','EPSG','2704','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21259','GSK-2011 / GSK 3GK zone 59',NULL,'EPSG','4530','EPSG','7683','EPSG','16959',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16373','projected_crs','EPSG','21259','EPSG','2705','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21260','GSK-2011 / GSK 3GK zone 60',NULL,'EPSG','4530','EPSG','7683','EPSG','16960',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16375','projected_crs','EPSG','21260','EPSG','2706','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21261','GSK-2011 / GSK 3GK zone 61',NULL,'EPSG','4530','EPSG','7683','EPSG','16961',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16376','projected_crs','EPSG','21261','EPSG','2707','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21262','GSK-2011 / GSK 3GK zone 62',NULL,'EPSG','4530','EPSG','7683','EPSG','16962',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16377','projected_crs','EPSG','21262','EPSG','2708','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21263','GSK-2011 / GSK 3GK zone 63',NULL,'EPSG','4530','EPSG','7683','EPSG','16963',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16378','projected_crs','EPSG','21263','EPSG','2709','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21264','GSK-2011 / GSK 3GK zone 64',NULL,'EPSG','4530','EPSG','7683','EPSG','16964',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16379','projected_crs','EPSG','21264','EPSG','2710','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21291','Barbados 1938 / British West Indies Grid',NULL,'EPSG','4400','EPSG','4212','EPSG','19942',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','6287','projected_crs','EPSG','21291','EPSG','3218','EPSG','1092');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21292','Barbados 1938 / Barbados National Grid',NULL,'EPSG','4400','EPSG','4212','EPSG','19943',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','6288','projected_crs','EPSG','21292','EPSG','3218','EPSG','1092');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21307','GSK-2011 / GSK 3GK CM 21E',NULL,'EPSG','4530','EPSG','7683','EPSG','17107',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16451','projected_crs','EPSG','21307','EPSG','2747','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21308','GSK-2011 / GSK 3GK CM 24E',NULL,'EPSG','4530','EPSG','7683','EPSG','17108',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16466','projected_crs','EPSG','21308','EPSG','2748','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21309','GSK-2011 / GSK 3GK CM 27E',NULL,'EPSG','4530','EPSG','7683','EPSG','17109',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16467','projected_crs','EPSG','21309','EPSG','2749','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21310','GSK-2011 / GSK 3GK CM 30E',NULL,'EPSG','4530','EPSG','7683','EPSG','17110',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16468','projected_crs','EPSG','21310','EPSG','2750','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21311','GSK-2011 / GSK 3GK CM 33E',NULL,'EPSG','4530','EPSG','7683','EPSG','17111',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16469','projected_crs','EPSG','21311','EPSG','2751','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21312','GSK-2011 / GSK 3GK CM 36E',NULL,'EPSG','4530','EPSG','7683','EPSG','17112',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16470','projected_crs','EPSG','21312','EPSG','2752','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21313','GSK-2011 / GSK 3GK CM 39E',NULL,'EPSG','4530','EPSG','7683','EPSG','17113',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16479','projected_crs','EPSG','21313','EPSG','2753','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21314','GSK-2011 / GSK 3GK CM 42E',NULL,'EPSG','4530','EPSG','7683','EPSG','17114',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16471','projected_crs','EPSG','21314','EPSG','2754','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21315','GSK-2011 / GSK 3GK CM 45E',NULL,'EPSG','4530','EPSG','7683','EPSG','17115',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16472','projected_crs','EPSG','21315','EPSG','2755','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21316','GSK-2011 / GSK 3GK CM 48E',NULL,'EPSG','4530','EPSG','7683','EPSG','17116',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16473','projected_crs','EPSG','21316','EPSG','2756','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21317','GSK-2011 / GSK 3GK CM 51E',NULL,'EPSG','4530','EPSG','7683','EPSG','17117',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16474','projected_crs','EPSG','21317','EPSG','2757','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21318','GSK-2011 / GSK 3GK CM 54E',NULL,'EPSG','4530','EPSG','7683','EPSG','17118',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16475','projected_crs','EPSG','21318','EPSG','2758','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21319','GSK-2011 / GSK 3GK CM 57E',NULL,'EPSG','4530','EPSG','7683','EPSG','17119',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16476','projected_crs','EPSG','21319','EPSG','2759','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21320','GSK-2011 / GSK 3GK CM 60E',NULL,'EPSG','4530','EPSG','7683','EPSG','17120',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16477','projected_crs','EPSG','21320','EPSG','2760','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21321','GSK-2011 / GSK 3GK CM 63E',NULL,'EPSG','4530','EPSG','7683','EPSG','17121',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16478','projected_crs','EPSG','21321','EPSG','2761','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21322','GSK-2011 / GSK 3GK CM 66E',NULL,'EPSG','4530','EPSG','7683','EPSG','17122',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16448','projected_crs','EPSG','21322','EPSG','2762','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21323','GSK-2011 / GSK 3GK CM 69E',NULL,'EPSG','4530','EPSG','7683','EPSG','17123',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16430','projected_crs','EPSG','21323','EPSG','2763','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21324','GSK-2011 / GSK 3GK CM 72E',NULL,'EPSG','4530','EPSG','7683','EPSG','17124',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16449','projected_crs','EPSG','21324','EPSG','2764','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21325','GSK-2011 / GSK 3GK CM 75E',NULL,'EPSG','4530','EPSG','7683','EPSG','17125',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16431','projected_crs','EPSG','21325','EPSG','2765','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21326','GSK-2011 / GSK 3GK CM 78E',NULL,'EPSG','4530','EPSG','7683','EPSG','17126',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16432','projected_crs','EPSG','21326','EPSG','2766','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21327','GSK-2011 / GSK 3GK CM 81E',NULL,'EPSG','4530','EPSG','7683','EPSG','17127',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16433','projected_crs','EPSG','21327','EPSG','2767','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21328','GSK-2011 / GSK 3GK CM 84E',NULL,'EPSG','4530','EPSG','7683','EPSG','17128',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16434','projected_crs','EPSG','21328','EPSG','2768','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21329','GSK-2011 / GSK 3GK CM 87E',NULL,'EPSG','4530','EPSG','7683','EPSG','17129',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16435','projected_crs','EPSG','21329','EPSG','2769','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21330','GSK-2011 / GSK 3GK CM 90E',NULL,'EPSG','4530','EPSG','7683','EPSG','17130',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16436','projected_crs','EPSG','21330','EPSG','2676','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21331','GSK-2011 / GSK 3GK CM 93E',NULL,'EPSG','4530','EPSG','7683','EPSG','17131',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16437','projected_crs','EPSG','21331','EPSG','2677','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21332','GSK-2011 / GSK 3GK CM 96E',NULL,'EPSG','4530','EPSG','7683','EPSG','17132',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16429','projected_crs','EPSG','21332','EPSG','2678','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21333','GSK-2011 / GSK 3GK CM 99E',NULL,'EPSG','4530','EPSG','7683','EPSG','17133',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16438','projected_crs','EPSG','21333','EPSG','2679','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21334','GSK-2011 / GSK 3GK CM 102E',NULL,'EPSG','4530','EPSG','7683','EPSG','17134',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16439','projected_crs','EPSG','21334','EPSG','2680','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21335','GSK-2011 / GSK 3GK CM 105E',NULL,'EPSG','4530','EPSG','7683','EPSG','17135',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16440','projected_crs','EPSG','21335','EPSG','2681','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21336','GSK-2011 / GSK 3GK CM 108E',NULL,'EPSG','4530','EPSG','7683','EPSG','17136',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16441','projected_crs','EPSG','21336','EPSG','2682','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21337','GSK-2011 / GSK 3GK CM 111E',NULL,'EPSG','4530','EPSG','7683','EPSG','17137',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16406','projected_crs','EPSG','21337','EPSG','2683','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21338','GSK-2011 / GSK 3GK CM 114E',NULL,'EPSG','4530','EPSG','7683','EPSG','17138',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16407','projected_crs','EPSG','21338','EPSG','2684','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21339','GSK-2011 / GSK 3GK CM 117E',NULL,'EPSG','4530','EPSG','7683','EPSG','17139',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16408','projected_crs','EPSG','21339','EPSG','2685','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21340','GSK-2011 / GSK 3GK CM 120E',NULL,'EPSG','4530','EPSG','7683','EPSG','17140',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16409','projected_crs','EPSG','21340','EPSG','2686','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21341','GSK-2011 / GSK 3GK CM 123E',NULL,'EPSG','4530','EPSG','7683','EPSG','17141',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16481','projected_crs','EPSG','21341','EPSG','2687','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21342','GSK-2011 / GSK 3GK CM 126E',NULL,'EPSG','4530','EPSG','7683','EPSG','17142',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16411','projected_crs','EPSG','21342','EPSG','2688','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21343','GSK-2011 / GSK 3GK CM 129E',NULL,'EPSG','4530','EPSG','7683','EPSG','17143',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16412','projected_crs','EPSG','21343','EPSG','2689','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21344','GSK-2011 / GSK 3GK CM 132E',NULL,'EPSG','4530','EPSG','7683','EPSG','17144',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16413','projected_crs','EPSG','21344','EPSG','2690','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21345','GSK-2011 / GSK 3GK CM 135E',NULL,'EPSG','4530','EPSG','7683','EPSG','17145',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16414','projected_crs','EPSG','21345','EPSG','2691','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21346','GSK-2011 / GSK 3GK CM 138E',NULL,'EPSG','4530','EPSG','7683','EPSG','17146',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16415','projected_crs','EPSG','21346','EPSG','2692','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21347','GSK-2011 / GSK 3GK CM 141E',NULL,'EPSG','4530','EPSG','7683','EPSG','17147',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16416','projected_crs','EPSG','21347','EPSG','2693','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21348','GSK-2011 / GSK 3GK CM 144E',NULL,'EPSG','4530','EPSG','7683','EPSG','17148',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16417','projected_crs','EPSG','21348','EPSG','2694','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21349','GSK-2011 / GSK 3GK CM 147E',NULL,'EPSG','4530','EPSG','7683','EPSG','17149',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16418','projected_crs','EPSG','21349','EPSG','2695','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21350','GSK-2011 / GSK 3GK CM 150E',NULL,'EPSG','4530','EPSG','7683','EPSG','17150',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16419','projected_crs','EPSG','21350','EPSG','2696','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21351','GSK-2011 / GSK 3GK CM 153E',NULL,'EPSG','4530','EPSG','7683','EPSG','17151',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16380','projected_crs','EPSG','21351','EPSG','2697','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21352','GSK-2011 / GSK 3GK CM 156E',NULL,'EPSG','4530','EPSG','7683','EPSG','17152',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16381','projected_crs','EPSG','21352','EPSG','2698','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21353','GSK-2011 / GSK 3GK CM 159E',NULL,'EPSG','4530','EPSG','7683','EPSG','17153',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16382','projected_crs','EPSG','21353','EPSG','2699','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21354','GSK-2011 / GSK 3GK CM 162E',NULL,'EPSG','4530','EPSG','7683','EPSG','17154',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16383','projected_crs','EPSG','21354','EPSG','2700','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21355','GSK-2011 / GSK 3GK CM 165E',NULL,'EPSG','4530','EPSG','7683','EPSG','17155',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16384','projected_crs','EPSG','21355','EPSG','2701','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21356','GSK-2011 / GSK 3GK CM 168E',NULL,'EPSG','4530','EPSG','7683','EPSG','17156',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16385','projected_crs','EPSG','21356','EPSG','2702','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21357','GSK-2011 / GSK 3GK CM 171E',NULL,'EPSG','4530','EPSG','7683','EPSG','17157',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16386','projected_crs','EPSG','21357','EPSG','2703','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21358','GSK-2011 / GSK 3GK CM 174E',NULL,'EPSG','4530','EPSG','7683','EPSG','17158',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16374','projected_crs','EPSG','21358','EPSG','2704','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21359','GSK-2011 / GSK 3GK CM 177E',NULL,'EPSG','4530','EPSG','7683','EPSG','17159',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16387','projected_crs','EPSG','21359','EPSG','2705','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21360','GSK-2011 / GSK 3GK CM 180E',NULL,'EPSG','4530','EPSG','7683','EPSG','17160',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16388','projected_crs','EPSG','21360','EPSG','2706','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21361','GSK-2011 / GSK 3GK CM 177W',NULL,'EPSG','4530','EPSG','7683','EPSG','17161',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16389','projected_crs','EPSG','21361','EPSG','2707','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21362','GSK-2011 / GSK 3GK CM 174W',NULL,'EPSG','4530','EPSG','7683','EPSG','17162',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16390','projected_crs','EPSG','21362','EPSG','2708','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21363','GSK-2011 / GSK 3GK CM 171W',NULL,'EPSG','4530','EPSG','7683','EPSG','17163',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16483','projected_crs','EPSG','21363','EPSG','2709','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21364','GSK-2011 / GSK 3GK CM 168W',NULL,'EPSG','4530','EPSG','7683','EPSG','17164',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16484','projected_crs','EPSG','21364','EPSG','2710','EPSG','1055');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21413','Beijing 1954 / Gauss-Kruger zone 13',NULL,'EPSG','4530','EPSG','4214','EPSG','16213',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','6289','projected_crs','EPSG','21413','EPSG','1587','EPSG','1211');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','21414','Beijing 1954 / Gauss-Kruger zone 14',NULL,'EPSG','4530','EPSG','4214','EPSG','16214',NULL,0);
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
name: proj
|
||||
channels:
|
||||
- conda-forge
|
||||
dependencies:
|
||||
- descartes
|
||||
- doxygen = 1.9.1
|
||||
- geojson
|
||||
- matplotlib
|
||||
- shapely < 1.8
|
||||
- pip
|
||||
- pip:
|
||||
- breathe
|
||||
- pybtex
|
||||
- sphinx-rtd-theme
|
||||
- sphinxcontrib-bibtex
|
||||
- sphinxcontrib-spelling
|
||||
@@ -1,86 +0,0 @@
|
||||
name: proj
|
||||
channels:
|
||||
- defaults
|
||||
dependencies:
|
||||
- blas=1.0=mkl
|
||||
- bzip2=1.0.6=h1de35cc_5
|
||||
- ca-certificates=2018.03.07=0
|
||||
- cairo=1.14.12=hc4e6be7_4
|
||||
- certifi=2018.8.24=py37_1
|
||||
- click=6.7=py37_0
|
||||
- click-plugins=1.0.3=py37_1
|
||||
- cligj=0.4.0=py37_1
|
||||
- curl=7.61.0=ha441bb4_0
|
||||
- cycler=0.10.0=py37_0
|
||||
- descartes=1.1.0=py37_0
|
||||
- expat=2.2.6=h0a44026_0
|
||||
- fiona=1.7.12=py37h0dff353_0
|
||||
- fontconfig=2.13.0=h5d5b041_1
|
||||
- freetype=2.9.1=hb4e5f40_0
|
||||
- freexl=1.0.5=h1de35cc_0
|
||||
- gdal=2.2.4=py37h6440ff4_1
|
||||
- geos=3.6.2=h5470d99_2
|
||||
- gettext=0.19.8.1=h15daf44_3
|
||||
- giflib=5.1.4=h1de35cc_1
|
||||
- glib=2.56.2=hd9629dc_0
|
||||
- hdf4=4.2.13=h39711bb_2
|
||||
- hdf5=1.10.2=hfa1e0ec_1
|
||||
- icu=58.2=h4b95b61_1
|
||||
- intel-openmp=2019.0=118
|
||||
- jpeg=9b=he5867d9_2
|
||||
- json-c=0.13.1=h3efe00b_0
|
||||
- kealib=1.4.7=h40e48e4_6
|
||||
- kiwisolver=1.0.1=py37h0a44026_0
|
||||
- krb5=1.16.1=h24a3359_6
|
||||
- libboost=1.67.0=hebc422b_4
|
||||
- libcurl=7.61.0=hf30b1f0_0
|
||||
- libcxx=4.0.1=h579ed51_0
|
||||
- libcxxabi=4.0.1=hebd6815_0
|
||||
- libdap4=3.19.1=h3d3e54a_0
|
||||
- libedit=3.1.20170329=hb402a30_2
|
||||
- libffi=3.2.1=h475c297_4
|
||||
- libgdal=2.2.4=h7b1ea53_1
|
||||
- libgfortran=3.0.1=h93005f0_2
|
||||
- libiconv=1.15=hdd342a3_7
|
||||
- libkml=1.3.0=hbe12b63_4
|
||||
- libnetcdf=4.6.1=h4e6abe9_1
|
||||
- libpng=1.6.34=he12f830_0
|
||||
- libpq=10.5=hf30b1f0_0
|
||||
- libspatialite=4.3.0a=ha12ebda_19
|
||||
- libssh2=1.8.0=h322a93b_4
|
||||
- libtiff=4.0.9=hcb84e12_2
|
||||
- libuuid=1.0.3=h6bb4b03_2
|
||||
- libxml2=2.9.8=hab757c2_1
|
||||
- matplotlib=2.2.3=py37h54f8f79_0
|
||||
- mkl=2019.0=118
|
||||
- mkl_fft=1.0.4=py37h5d10147_1
|
||||
- mkl_random=1.0.1=py37h5d10147_1
|
||||
- munch=2.3.2=py37_0
|
||||
- ncurses=6.1=h0a44026_0
|
||||
- numpy=1.15.1=py37h6a91979_0
|
||||
- numpy-base=1.15.1=py37h8a80b8c_0
|
||||
- openjpeg=2.3.0=hb95cd4c_1
|
||||
- openssl=1.0.2p=h1de35cc_0
|
||||
- pcre=8.42=h378b8a2_0
|
||||
- pip=10.0.1=py37_0
|
||||
- pixman=0.34.0=hca0a616_3
|
||||
- poppler=0.65.0=ha097c24_1
|
||||
- poppler-data=0.4.9=0
|
||||
- proj4=5.0.1=h1de35cc_0
|
||||
- pyparsing=2.2.0=py37_1
|
||||
- python=3.7.0=hc167b69_0
|
||||
- python-dateutil=2.7.3=py37_0
|
||||
- pytz=2018.5=py37_0
|
||||
- readline=7.0=h1de35cc_5
|
||||
- setuptools=40.2.0=py37_0
|
||||
- shapely=1.6.4=py37h20de77a_0
|
||||
- six=1.11.0=py37_1
|
||||
- sqlite=3.24.0=ha441bb4_0
|
||||
- tk=8.6.8=ha441bb4_0
|
||||
- tornado=5.1=py37h1de35cc_0
|
||||
- wheel=0.31.1=py37_0
|
||||
- xerces-c=3.2.1=h44e365a_0
|
||||
- xz=5.2.4=h1de35cc_4
|
||||
- zlib=1.2.11=hf3cbc9b_2
|
||||
prefix: /usr/local/miniconda3/envs/proj
|
||||
|
||||
Regular → Executable
+91
-54
@@ -1,5 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
'''
|
||||
Plot map data in different projections supported by PROJ.4
|
||||
Plot map data in different projections supported by PROJ.
|
||||
|
||||
Call with:
|
||||
|
||||
@@ -41,30 +42,28 @@ or "line". The rest of the inputs are fairly free form.
|
||||
Change PROJ to path on your local system before running the script.
|
||||
'''
|
||||
|
||||
from __future__ import print_function
|
||||
from __future__ import division
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import os.path
|
||||
import shutil
|
||||
import sys
|
||||
import json
|
||||
import subprocess
|
||||
import functools
|
||||
from pathlib import Path
|
||||
|
||||
import geojson
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
from matplotlib.patches import Polygon
|
||||
import fiona
|
||||
from shapely.geometry import Polygon
|
||||
from shapely.geometry import MultiPolygon
|
||||
from shapely.geometry import MultiPolygon, Polygon, box as Box
|
||||
from shapely.geometry import shape
|
||||
from shapely.ops import transform
|
||||
from descartes import PolygonPatch
|
||||
|
||||
PROJ_COMMAND = os.environ.get('PROJ_EXE', '../../src/proj')
|
||||
if not os.path.exists(PROJ_COMMAND):
|
||||
PROJ = shutil.which(PROJ_COMMAND)
|
||||
PROJ = shutil.which('proj')
|
||||
if PROJ is None:
|
||||
raise ValueError("specify PROJ_EXE or modify PATH to find proj")
|
||||
else:
|
||||
PROJ = PROJ_COMMAND
|
||||
PROJ_LIB = os.environ.get('PROJ_LIB', '../../data')
|
||||
@@ -240,31 +239,46 @@ def resample_polygon(polygon):
|
||||
return Polygon(ext, rings)
|
||||
|
||||
|
||||
def plot_with_interruptions(axes, x, y, delta_cut=1e100, **kwargs):
|
||||
"""
|
||||
Plot x/y with proper splitting for interrupted projections.
|
||||
"""
|
||||
_x = np.atleast_1d(x)
|
||||
_y = np.atleast_1d(y)
|
||||
|
||||
dx = np.nan_to_num(_x[1: ]) - np.nan_to_num(_x[0: -1])
|
||||
dy = np.nan_to_num(_y[1: ]) - np.nan_to_num(_y[0: -1])
|
||||
split, = ((np.abs(dx) > delta_cut) | (np.abs(dy) > delta_cut)).nonzero()
|
||||
split = np.append(split, _x.size - 1)
|
||||
split += 1
|
||||
|
||||
last_part = 0
|
||||
for part in split:
|
||||
axes.plot(x[last_part: part],
|
||||
y[last_part: part],
|
||||
**kwargs)
|
||||
last_part = part
|
||||
|
||||
|
||||
def plotproj(plotdef, data, outdir):
|
||||
'''
|
||||
Plot map.
|
||||
'''
|
||||
axes = plt.axes()
|
||||
|
||||
bounds = (plotdef['lonmin'], plotdef['latmin'], plotdef['lonmax'], plotdef['latmax'])
|
||||
for geom in data.filter(bbox=bounds):
|
||||
temp_pol = shape(geom['geometry'])
|
||||
|
||||
box = Polygon([
|
||||
(plotdef['lonmin'], plotdef['latmin']),
|
||||
(plotdef['lonmin'], plotdef['latmax']),
|
||||
(plotdef['lonmax'], plotdef['latmax']),
|
||||
(plotdef['lonmax'], plotdef['latmin']),
|
||||
])
|
||||
try:
|
||||
temp_pol = temp_pol.intersection(box)
|
||||
except Exception as e:
|
||||
box = Box(
|
||||
plotdef['lonmin'], plotdef['latmin'],
|
||||
plotdef['lonmax'], plotdef['latmax'])
|
||||
for feat in data["features"]:
|
||||
geom = shape(feat["geometry"])
|
||||
if not geom.intersects(box):
|
||||
continue
|
||||
|
||||
temp_pol = geom.intersection(box)
|
||||
|
||||
if plotdef['type'] == 'poly':
|
||||
if isinstance(temp_pol, MultiPolygon):
|
||||
polys = [resample_polygon(polygon) for polygon in temp_pol]
|
||||
polys = [resample_polygon(polygon) for polygon in temp_pol.geoms]
|
||||
pol = MultiPolygon(polys)
|
||||
else:
|
||||
pol = resample_polygon(temp_pol)
|
||||
@@ -282,7 +296,8 @@ def plotproj(plotdef, data, outdir):
|
||||
pass
|
||||
else:
|
||||
x, y = proj_geom.xy
|
||||
axes.plot(x, y, color=COLOR_COAST, linewidth=0.5)
|
||||
plot_with_interruptions(axes, x, y, color=COLOR_COAST, linewidth=0.5,
|
||||
delta_cut=plotdef.get('delta_cut', 1e100))
|
||||
|
||||
# Plot frame
|
||||
frame = [
|
||||
@@ -293,7 +308,8 @@ def plotproj(plotdef, data, outdir):
|
||||
line = project(line, plotdef['projstring'])
|
||||
x = line[:, 0]
|
||||
y = line[:, 1]
|
||||
axes.plot(x, y, '-k')
|
||||
plot_with_interruptions(axes, x, y, color='black', linestyle='-',
|
||||
delta_cut=plotdef.get('delta_cut', 1e6))
|
||||
|
||||
graticule = build_graticule(
|
||||
plotdef['lonmin'],
|
||||
@@ -307,7 +323,28 @@ def plotproj(plotdef, data, outdir):
|
||||
feature = project(feature, plotdef['projstring'])
|
||||
x = feature[:, 0]
|
||||
y = feature[:, 1]
|
||||
axes.plot(x, y, color=COLOR_GRAT, linewidth=0.4)
|
||||
plot_with_interruptions(axes, x, y, color=COLOR_GRAT, linewidth=0.4,
|
||||
delta_cut=plotdef.get('delta_cut', 1e6))
|
||||
|
||||
# Plot interrupted boundaries if necessary
|
||||
interrupted_lines = []
|
||||
if 'top_interrupted_lons' in plotdef:
|
||||
for lon in plotdef['top_interrupted_lons']:
|
||||
for delta in [-0.0001, 0.0001]:
|
||||
merid = meridian(lon + delta, 0.0, plotdef['latmax'])
|
||||
interrupted_lines.append(project(merid, plotdef['projstring']))
|
||||
|
||||
if 'bottom_interrupted_lons' in plotdef:
|
||||
for lon in plotdef['bottom_interrupted_lons']:
|
||||
for delta in [-0.0001, 0.0001]:
|
||||
merid = meridian(lon + delta, plotdef['latmin'], 0)
|
||||
interrupted_lines.append(project(merid, plotdef['projstring']))
|
||||
|
||||
for line in interrupted_lines:
|
||||
x = line[:, 0]
|
||||
y = line[:, 1]
|
||||
plot_with_interruptions(axes, x, y, color=COLOR_GRAT, linewidth=0.4,
|
||||
delta_cut=plotdef.get('delta_cut', 1e100))
|
||||
|
||||
# Switch off the axis lines...
|
||||
plt.axis('off')
|
||||
@@ -326,9 +363,12 @@ def plotproj(plotdef, data, outdir):
|
||||
# Make sure the plot is not stretched
|
||||
axes.set_aspect('equal')
|
||||
|
||||
if not os.path.exists(outdir):
|
||||
os.makedirs(outdir)
|
||||
plt.savefig(outdir + '/' + plotdef['filename'],
|
||||
outdir = Path(outdir)
|
||||
if not outdir.exists():
|
||||
outdir.mkdir(parents=True)
|
||||
if not outdir.is_dir():
|
||||
raise OSError("outdir is not a directory")
|
||||
plt.savefig(outdir / plotdef['filename'],
|
||||
dpi=400,
|
||||
bbox_inches='tight')
|
||||
|
||||
@@ -338,36 +378,22 @@ def plotproj(plotdef, data, outdir):
|
||||
plt.close()
|
||||
|
||||
|
||||
def main():
|
||||
def main(plotdefs, outdir, plots=[]):
|
||||
'''
|
||||
Main function of plotting script.
|
||||
|
||||
Parses json-file with plot setups and runs the plotting
|
||||
for each plot setup.
|
||||
'''
|
||||
plotdefs = json.loads(Path(plotdefs).read_text())
|
||||
|
||||
data = {
|
||||
('line', 'low'): fiona.open(LINE_LOW),
|
||||
('line', 'med'): fiona.open(LINE_MED),
|
||||
('poly', 'low'): fiona.open(POLY_LOW),
|
||||
('poly', 'med'): fiona.open(POLY_MED),
|
||||
('line', 'low'): geojson.loads(Path(LINE_LOW).read_text()),
|
||||
('line', 'med'): geojson.loads(Path(LINE_MED).read_text()),
|
||||
('poly', 'low'): geojson.loads(Path(POLY_LOW).read_text()),
|
||||
('poly', 'med'): geojson.loads(Path(POLY_MED).read_text()),
|
||||
}
|
||||
|
||||
if os.path.exists(sys.argv[1]):
|
||||
# first argument is the JSON plot definition setup file
|
||||
with open(sys.argv[1]) as plotsetup:
|
||||
plotdefs = json.load(plotsetup)
|
||||
else:
|
||||
raise ValueError('No plot definition file entered')
|
||||
|
||||
plots = []
|
||||
# second argument is the output dir
|
||||
outdir = sys.argv[2]
|
||||
|
||||
# subsecond arguments are (optional) names of plot in plotdef.json
|
||||
if len(sys.argv) > 3:
|
||||
plots = sys.argv[3:len(sys.argv)]
|
||||
|
||||
for i, plotdef in enumerate(plotdefs):
|
||||
if plots != [] and plotdef['name'] not in plots:
|
||||
continue
|
||||
@@ -379,9 +405,20 @@ def main():
|
||||
|
||||
plotproj(plotdef, data[(plotdef['type'], plotdef['res'])], outdir)
|
||||
|
||||
for key in data:
|
||||
data[key].close()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
parser = argparse.ArgumentParser(
|
||||
description=__doc__,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter)
|
||||
parser.add_argument(
|
||||
'plotdefs',
|
||||
help='A JSON file with setup for each auto-generated plot')
|
||||
parser.add_argument(
|
||||
'outdir',
|
||||
help='Directory to put the plots in.')
|
||||
parser.add_argument(
|
||||
'plots', nargs='*',
|
||||
help='A list of plot names within the plotdefs file. '
|
||||
'More than one plotname can be given at once.')
|
||||
args = parser.parse_args()
|
||||
sys.exit(main(**vars(args)))
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
|
||||
python3 plot.py plotdefs.json images/
|
||||
Executable
+12
@@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
export PROJ_LIB="$HOME/.local/share/proj"
|
||||
|
||||
cd docs/plot
|
||||
python plot.py plotdefs.json images
|
||||
cd ../..
|
||||
|
||||
mkdir -p docs/source/operations/projections/images/
|
||||
cp -r docs/plot/images/* docs/source/operations/projections/images/
|
||||
Executable
+16
@@ -0,0 +1,16 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
# https://github.com/readthedocs/readthedocs.org/pull/9888
|
||||
READTHEDOCS_OUTPUT="_readthedocs"
|
||||
find ${READTHEDOCS_OUTPUT} -type d
|
||||
READTHEDOCS_OUTPUT_HTML="${READTHEDOCS_OUTPUT}/html"
|
||||
|
||||
# Undoes the hack done in scripts/doxygen.sh
|
||||
sed "s/io::Convention_/io::Convention/g" < ${READTHEDOCS_OUTPUT_HTML}/development/reference/cpp/io.html | sed "s/>Convention_/>Convention/g" | sed "s/_WKT2/WKT2/g" | sed "s/_WKT1/WKT1/g" > ${READTHEDOCS_OUTPUT_HTML}/development/reference/cpp/io.html.tmp
|
||||
mv ${READTHEDOCS_OUTPUT_HTML}/development/reference/cpp/io.html.tmp ${READTHEDOCS_OUTPUT_HTML}/development/reference/cpp/io.html
|
||||
|
||||
# Copy JSON schemas for public consumption
|
||||
READTHEDOCS_OUTPUT_SCHEMAS="${READTHEDOCS_OUTPUT_HTML}/schemas"
|
||||
cp -r schemas ${READTHEDOCS_OUTPUT_SCHEMAS}
|
||||
cp ./data/triangulation.schema.json ${READTHEDOCS_OUTPUT_SCHEMAS}
|
||||
Executable
+9
@@ -0,0 +1,9 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
mkdir build
|
||||
cd build
|
||||
|
||||
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DCMAKE_INSTALL_PREFIX=$HOME/.local ..
|
||||
|
||||
ninja install
|
||||
+4
-21
@@ -22,25 +22,8 @@ License
|
||||
|
||||
PROJ uses the MIT license. The software was initially released by the USGS in
|
||||
the public domain. When Frank Warmerdam took over the development of PROJ it
|
||||
was moved under the MIT license. The license is as follows:
|
||||
|
||||
Copyright (c) 2000, Frank Warmerdam
|
||||
|
||||
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 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
was moved under the MIT license. The full text of the license follows, and can
|
||||
also be found in the file ``COPYING``, at the top level of the source
|
||||
distribution package.
|
||||
|
||||
.. literalinclude:: ../../COPYING
|
||||
|
||||
@@ -29,7 +29,7 @@ by :c:func:`proj_create`, provided it expresses a coordinate operation
|
||||
uniqueness is not guaranteed, heuristics are applied to determine the appropriate best match.
|
||||
- a OGC URN combining references for concatenated operations
|
||||
(e.g. "urn:ogc:def:coordinateOperation,coordinateOperation:EPSG::3895,coordinateOperation:EPSG::1618")
|
||||
- a PROJJSON string. The jsonschema is at https://proj.org/schemas/v0.2/projjson.schema.json
|
||||
- a PROJJSON string. The jsonschema is at https://proj.org/schemas/v0.3/projjson.schema.json
|
||||
|
||||
.. versionadded:: 8.0.0
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ Synopsis
|
||||
(*added in 6.2*)
|
||||
- a OGC URN combining references for concatenated operations
|
||||
(e.g. "urn:ogc:def:coordinateOperation,coordinateOperation:EPSG::3895,coordinateOperation:EPSG::1618")
|
||||
- a PROJJSON string. The jsonschema is at https://proj.org/schemas/v0.2/projjson.schema.json (*added in 6.2*)
|
||||
- a PROJJSON string. The jsonschema is at https://proj.org/schemas/v0.3/projjson.schema.json (*added in 6.2*)
|
||||
- a compound CRS made from two object names separated with " + ". e.g. "WGS 84 + EGM96 height" (*added in 7.1*)
|
||||
|
||||
.. versionadded:: 6.0.0
|
||||
|
||||
@@ -55,7 +55,7 @@ Synopsis
|
||||
(*added in 6.2*)
|
||||
- a OGC URN combining references for concatenated operations
|
||||
(e.g. "urn:ogc:def:coordinateOperation,coordinateOperation:EPSG::3895,coordinateOperation:EPSG::1618")
|
||||
- a PROJJSON string. The jsonschema is at https://proj.org/schemas/v0.2/projjson.schema.json (*added in 6.2*)
|
||||
- a PROJJSON string. The jsonschema is at https://proj.org/schemas/v0.3/projjson.schema.json (*added in 6.2*)
|
||||
- a compound CRS made from two object names separated with " + ". e.g. "WGS 84 + EGM96 height" (*added in 7.1*)
|
||||
|
||||
{object_reference} is a filename preceded by the '@' character. The
|
||||
|
||||
@@ -17,3 +17,4 @@ the project.
|
||||
rfc-4
|
||||
rfc-5
|
||||
rfc-6
|
||||
rfc-7
|
||||
|
||||
@@ -0,0 +1,135 @@
|
||||
.. _rfc7:
|
||||
|
||||
====================================================================
|
||||
PROJ RFC 7: Drop Autotools, maintain CMake
|
||||
====================================================================
|
||||
|
||||
:Author: Mike Taves
|
||||
:Contact: mwtoews@gmail.com
|
||||
:Status: Adopted
|
||||
:Implementation target: PROJ 9.0
|
||||
:Last Updated: 2021-10-27
|
||||
|
||||
Summary
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
This RFC proposes to drop Autotools for PROJ 9.0, and to maintain CMake
|
||||
for build automation, testing and packaging. This will reduce the overall
|
||||
maintenance for PROJ and will enable the library to be integrated into other
|
||||
projects that use CMake.
|
||||
|
||||
Background
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
Here is a short timeline of the build tools used for PROJ:
|
||||
|
||||
- Throughout the mid-1990s, Gerald Evenden maintained a Unix build system with
|
||||
a few scripts (some derived from Autoconf), and Makefile templates.
|
||||
- In 2000, Frank Warmerdam wrote Autoconf and Automake configurations for
|
||||
PROJ 4.4.0.
|
||||
- This was followed by a NMake configuration to build PROJ 4.4.2 for Windows.
|
||||
- In 2014, a CMake build setup was introduced by Howard Butler for
|
||||
PROJ 4.9.0RC1. The CMake configuration was improved for the 4.9.1 release,
|
||||
but not considered at feature parity with the Autotools builds at the time.
|
||||
- The NMake build setup was removed for PROJ 6.0.0, as its functionality had
|
||||
been replaced by CMake.
|
||||
|
||||
Motivation
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
The primary motivation in removing Autotools is to reduce the burden of
|
||||
maintaining multiple build configurations, which requires developers to be
|
||||
familiar with different tools and configuration files. There are several other
|
||||
benefits in maintaining a single build system:
|
||||
|
||||
- Remove extra configuration and m4 macro files from source repository,
|
||||
- Simplify scripts used for running tests for CI services (GitHub Actions,
|
||||
TravisCI),
|
||||
- Reduce compilation time (and carbon footprint) used for testing on CI
|
||||
services,
|
||||
- Ease development effort, particularly with new contributors.
|
||||
|
||||
Why drop Autotools?
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
The GNU Build System or Autotools consist of a suite of tools including
|
||||
Autoconf and Automake, which can be used to build software on Unix-like
|
||||
systems. These tools are not cross-platform, and do not naively integrate
|
||||
with development environments on Microsoft Windows. Furthermore, the existing
|
||||
PROJ Autotools builds do not install the CMake configuration files required to
|
||||
find PROJ from other projects that use CMake
|
||||
(`#2546 <https://github.com/OSGeo/PROJ/issues/2546>`_).
|
||||
|
||||
Why use CMake?
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
CMake is an open source cross-platform tool for build automation, testing and
|
||||
packaging of software. It does not directly compile the software, but manages
|
||||
the build process using generators, including Unix Makefiles and Ninja among
|
||||
other command-based and IDE tools. The CMake software has been under active
|
||||
development since its origins in 2000. The CMake language is carefully
|
||||
developed with backwards-compatible policies that aim to provide consistent
|
||||
behaviour across different versions. CMake is currently the preferred build
|
||||
tool for PROJ for the following reasons:
|
||||
|
||||
- It has existed in the PROJ code base since 2014, and is familiar to active
|
||||
PROJ contributors,
|
||||
- It can install configuration files that can be used by other software that
|
||||
use CMake to find PROJ for linking via ``find_package()``,
|
||||
- CMake configurations are used in 3rd-party binary packages of PROJ,
|
||||
including conda-forge and vcpkg,
|
||||
- It can be used to build PROJ on all major operating systems and compiler
|
||||
combinations (where compatible),
|
||||
- It has integration with modern IDEs and tools, including
|
||||
Microsoft Visual Studio and Qt Creator.
|
||||
|
||||
Why not CMake?
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
Other modern cross-platform build systems exist, including Meson and Bazel,
|
||||
which have many advantages over CMake. However, they are currently not widely
|
||||
used by active PROJ contributors. This RFC should not restrict future build
|
||||
system configurations being introduced to PROJ, if they are proven to have
|
||||
advantages to CMake over time.
|
||||
|
||||
Potential impacts
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
Binary packagers that currently rely on Autotools would obviously need to
|
||||
transition building and testing PROJ with CMake. Issues related to
|
||||
multiarch builds of PROJ may become apparent, which can be patched and/or
|
||||
reported to PROJ developers. One feature of Autotools is that both static and
|
||||
dynamic (shared) libraries are built, which packagers may distribute. This
|
||||
feature is currently not set-up for PROJ, as it would need to be configured
|
||||
and built twice.
|
||||
|
||||
End-users that use binary packages of PROJ should not be impacted. PROJ should
|
||||
be discoverable via both pkg-config and CMake's ``find_package()``.
|
||||
Other projects that use Autotools will continue to work as expected,
|
||||
linking statically or dynamically to PROJ built by CMake.
|
||||
|
||||
Transition plan
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
If this proposal is approved, the following tasks should be completed:
|
||||
|
||||
- Rewrite CI tests to only use CMake for packaging, building, testing,
|
||||
installation and post-install tests,
|
||||
- Remove files only used by Autotools, also update ``.gitignore``,
|
||||
- Update documentation and ``HOWTORELEASE`` notes.
|
||||
|
||||
Related issues will be tracked on GitHub with a tag
|
||||
`RFC7: Autotools→CMake <https://github.com/OSGeo/PROJ/labels/RFC7%3A%20Autotools%E2%86%92CMake>`_.
|
||||
|
||||
Adoption status
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
The RFC was adopted on 2021-10-26 with +1's from the following PSC members
|
||||
|
||||
* Kristian Evers
|
||||
* Even Rouault
|
||||
* Howard Butler
|
||||
* Thomas Knudsen
|
||||
* Kurt Schwehr
|
||||
* Charles Karney
|
||||
* Thomas Knudsen
|
||||
+18
-17
@@ -14,7 +14,6 @@
|
||||
|
||||
import sys
|
||||
import os
|
||||
import datetime
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
@@ -70,29 +69,25 @@ project = 'PROJ'
|
||||
# See CITATION file
|
||||
title = 'PROJ coordinate transformation software library'
|
||||
author = 'PROJ contributors'
|
||||
|
||||
now = datetime.datetime.now()
|
||||
copyright = u'1983-{0}'.format(now.year)
|
||||
copyright = u'1983-2021'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
# built documents.
|
||||
version = '8.1.0'
|
||||
data_version = '1.5'
|
||||
|
||||
# use same |release| as |version|
|
||||
release = version
|
||||
version = '8.1'
|
||||
release = '8.1.1'
|
||||
data_version = '1.7'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
#
|
||||
# This is also used if you do content translation via gettext catalogs.
|
||||
# Usually you set "language" from the command line for these cases.
|
||||
language = None
|
||||
# language = 'en'
|
||||
|
||||
# There are two options for replacing |today|: either, you set today to some
|
||||
# non-false value, then it is used:
|
||||
#today = ''
|
||||
today = 'September 2021'
|
||||
# Else, today_fmt is used as the format for a strftime call.
|
||||
#today_fmt = '%B %d, %Y'
|
||||
|
||||
@@ -196,16 +191,16 @@ html_favicon = '../images/favicon.png'
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
html_static_path = ['_static']
|
||||
|
||||
htm_css_files = [
|
||||
'theme_overrides.css', # override wide tables in RTD theme
|
||||
]
|
||||
|
||||
html_context = {
|
||||
'display_github': True,
|
||||
'theme_vcs_pageview_mode': 'edit',
|
||||
'github_user': 'OSGeo',
|
||||
'github_repo': 'PROJ',
|
||||
# TODO: edit when switching active branch
|
||||
'github_version': '/8.0/docs/source/',
|
||||
'css_files': [
|
||||
'_static/theme_overrides.css', # override wide tables in RTD theme
|
||||
],
|
||||
'github_version': '/8.1/docs/source/',
|
||||
}
|
||||
|
||||
# Add any extra paths that contain custom files (such as robots.txt or
|
||||
@@ -278,6 +273,8 @@ preamble = r"""
|
||||
\ifdefined\DeclareUnicodeCharacter
|
||||
\DeclareUnicodeCharacter{2032}{$'$}% prime
|
||||
\fi
|
||||
|
||||
\usepackage[notbib]{tocbibind}
|
||||
"""
|
||||
|
||||
latex_elements = {
|
||||
@@ -289,7 +286,8 @@ latex_elements = {
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
'preamble': preamble,
|
||||
'inputenc':'\\usepackage[utf8]{inputenc}'
|
||||
'inputenc': r'\usepackage[utf8]{inputenc}',
|
||||
'makeindex': r'\usepackage[columns=1]{idxlayout}\makeindex',
|
||||
|
||||
# Latex figure (float) alignment
|
||||
#'figure_align': 'htbp',
|
||||
@@ -411,6 +409,9 @@ texinfo_documents = [
|
||||
breathe_projects = {
|
||||
"doxygen_api":"../build/xml/",
|
||||
}
|
||||
breathe_domain_by_extension = {
|
||||
"h" : "c",
|
||||
}
|
||||
|
||||
import redirects
|
||||
redirect_files = redirects.gather_redirects()
|
||||
|
||||
@@ -4,4 +4,62 @@
|
||||
Error handling
|
||||
================================================================================
|
||||
|
||||
PROJ maintains an internal error state, which is local to a
|
||||
:c:type:`PJ_CONTEXT` thread context.
|
||||
|
||||
See :doc:`quickstart` for more information about how to create and use a thread
|
||||
context object.
|
||||
|
||||
If you receive an abnormal return from a PROJ API function (e.g. a NULL
|
||||
pointer) you may wish to discover more information about the error.
|
||||
|
||||
In this case you can make a call to :c:func:`proj_context_errno`, passing in
|
||||
your thread context. This will return an integer error code.
|
||||
|
||||
If the error code is zero, the last PROJ operation was deemed successful and no
|
||||
error has been detected.
|
||||
|
||||
If the error code is non-zero, an error has been detected. You can pass your
|
||||
thread context together with this error code to
|
||||
:c:func:`proj_context_errno_string` to retrieve a string describing the error
|
||||
condition.
|
||||
|
||||
A basic example showing how a C program might catch and report errors follows:
|
||||
|
||||
.. code-block:: c
|
||||
:caption: errorhandling.c
|
||||
:linenos:
|
||||
|
||||
#include <stdio.h>
|
||||
#include <proj.h>
|
||||
|
||||
int main (void) {
|
||||
PJ_CONTEXT *c;
|
||||
PJ *p;
|
||||
int errno;
|
||||
const char *errstr;
|
||||
|
||||
c = proj_context_create();
|
||||
p = proj_create_crs_to_crs(c, "EPSG:4326", "EPSG:3857", NULL);
|
||||
|
||||
if (p == 0) {
|
||||
/* Something is wrong, let's try to get details ... */
|
||||
errno = proj_context_errno(c);
|
||||
if (errno == 0) {
|
||||
/* This should be impossible. */
|
||||
fprintf(stderr, "Failed to create transformation, reason unknown.\n");
|
||||
} else {
|
||||
errstr = proj_context_errno_string(c, errno);
|
||||
fprintf(stderr, "Failed to create transformation: %s.\n", errstr);
|
||||
}
|
||||
proj_context_destroy(c);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* transformation object is valid, do work ... */
|
||||
|
||||
proj_destroy(p);
|
||||
proj_context_destroy(c);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ PROJ project or using the library in their own software.
|
||||
quickstart
|
||||
transformations
|
||||
errorhandling
|
||||
threads
|
||||
reference/index
|
||||
cmake
|
||||
bindings
|
||||
|
||||
@@ -28,10 +28,9 @@ See the :doc:`reference for more info on data types <reference/datatypes>`.
|
||||
:lines: 43-46
|
||||
:dedent: 4
|
||||
|
||||
For use in multi-threaded programs the :c:type:`PJ_CONTEXT` threading-context is used.
|
||||
In this particular example it is not needed, but for the sake of completeness
|
||||
it created here. The section on :doc:`threads <threads>` discusses
|
||||
this in detail.
|
||||
For use in multi-threaded programs the :c:type:`PJ_CONTEXT` threading-context
|
||||
is used. In this particular example it is not needed, but for the sake of
|
||||
completeness we demonstrate its use here.
|
||||
|
||||
.. literalinclude:: ../../../examples/pj_obs_api_mini_demo.c
|
||||
:language: c
|
||||
@@ -39,13 +38,38 @@ this in detail.
|
||||
:dedent: 4
|
||||
|
||||
Next we create the :c:type:`PJ` transformation object ``P`` with the function
|
||||
:c:func:`proj_create_crs_to_crs`. :c:func:`proj_create_crs_to_crs` takes the threading context ``C``
|
||||
created above, a string that describes the source coordinate reference system (CRS),
|
||||
a string that describes the target CRS and an optional description of the area of
|
||||
use.
|
||||
The strings for the source or target CRS may be PROJ strings (``+proj=longlat +datum=WGS84``),
|
||||
CRS identified by their code (``EPSG:4326`` or ``urn:ogc:def:crs:EPSG::4326``) or
|
||||
by a well-known text (WKT) string:
|
||||
:c:func:`proj_create_crs_to_crs`.
|
||||
|
||||
.. literalinclude:: ../../../examples/pj_obs_api_mini_demo.c
|
||||
:language: c
|
||||
:lines: 52-60
|
||||
:dedent: 4
|
||||
|
||||
Here we have set up a transformation from geographic coordinates to UTM zone
|
||||
32N.
|
||||
|
||||
:c:func:`proj_create_crs_to_crs` takes as its arguments:
|
||||
|
||||
- the threading context ``C`` created above,
|
||||
- a string that describes the source coordinate reference system (CRS),
|
||||
- a string that describes the target CRS and
|
||||
- an optional description of the area of use.
|
||||
|
||||
It is recommended to create one threading context per thread used by the
|
||||
program. This ensures that all :c:type:`PJ` objects created in the same
|
||||
context will be sharing resources such as error-numbers and loaded grids.
|
||||
|
||||
If you are sure that ``P`` will only be used by a single program thread, you
|
||||
may pass ``NULL`` for the threading context. This will assign the default
|
||||
thread context to ``P``.
|
||||
|
||||
The strings for the source and target CRS may be any of:
|
||||
|
||||
- PROJ strings, e.g. ``+proj=longlat +datum=WGS84 +type=crs``,
|
||||
- CRS identified by their code, e.g. ``EPSG:4326`` or
|
||||
``urn:ogc:def:crs:EPSG::4326``, or
|
||||
- a well-known text (WKT) string, e.g.:
|
||||
|
||||
::
|
||||
|
||||
GEOGCRS["WGS 84",
|
||||
@@ -67,89 +91,107 @@ by a well-known text (WKT) string:
|
||||
BBOX[-90,-180,90,180]],
|
||||
ID["EPSG",4326]]
|
||||
|
||||
The use of PROJ strings to describe a CRS is considered as legacy (one of the
|
||||
main weakness of PROJ strings is their inability to describe a geodetic datum,
|
||||
other than the few ones hardcoded in the ``+datum`` parameter).
|
||||
Here we transform from geographic coordinates to UTM zone 32N.
|
||||
It is recommended to create one threading-context per thread used by the program.
|
||||
This ensures that all :c:type:`PJ` objects created in the same context will be
|
||||
sharing resources such as error-numbers and loaded grids.
|
||||
In case the creation of the :c:type:`PJ` object fails an error message is
|
||||
displayed and the program returns. See :doc:`errorhandling` for further
|
||||
details.
|
||||
.. warning::
|
||||
|
||||
.. literalinclude:: ../../../examples/pj_obs_api_mini_demo.c
|
||||
:language: c
|
||||
:lines: 52-60
|
||||
:dedent: 4
|
||||
The use of PROJ strings to describe a CRS is not recommended. One of the
|
||||
main weaknesses of PROJ strings is their inability to describe a geodetic
|
||||
datum, other than the few ones hardcoded in the ``+datum`` parameter.
|
||||
|
||||
:c:func:`proj_create_crs_to_crs` creates a transformation object, which accepts
|
||||
coordinates expressed in the units and axis order of the definition of the
|
||||
source CRS, and return transformed coordinates in the units and axis order of
|
||||
the definition of the target CRS.
|
||||
For almost most geographic CRS, the units will be in most cases degrees (in
|
||||
rare cases, such as EPSG:4807 / NTF (Paris), this can be grads). For geographic
|
||||
CRS defined by the EPSG authority, the order of coordinates is latitude first,
|
||||
longitude second. When using a PROJ string, on contrary the order will be
|
||||
longitude first, latitude second.
|
||||
For projected CRS, the units may vary (metre, us-foot, etc..). For projected
|
||||
CRS defined by the EPSG authority, and with EAST / NORTH directions, the order
|
||||
might be easting first, northing second, or the reverse. When using a PROJ string,
|
||||
the order will be easting first, northing second, except if the ``+axis``
|
||||
parameter modifies it.
|
||||
:c:func:`proj_create_crs_to_crs` will return a pointer to a :c:type:`PJ`
|
||||
object, or a null pointer in the case of an error. The details of the error
|
||||
can be retrieved using :c:func:`proj_context_errno`. See :doc:`errorhandling`
|
||||
for further details.
|
||||
|
||||
If for the needs of your software, you want
|
||||
a uniform axis order (and thus do not care about axis order mandated by the
|
||||
authority defining the CRS), the :c:func:`proj_normalize_for_visualization`
|
||||
function can be used to modify the PJ* object returned by
|
||||
:c:func:`proj_create_crs_to_crs` so that it accepts as input and returns as
|
||||
output coordinates using the traditional GIS order, that is longitude, latitude
|
||||
(followed by elevation, time) for geographic CRS and easting, northing for most
|
||||
projected CRS.
|
||||
Now that we have a normalized transformation object in ``P``, we can use it
|
||||
with :c:func:`proj_trans` to transform coordinates from the source CRS to the
|
||||
target CRS, but first we will discuss the interpretation of coordinates.
|
||||
|
||||
By default, a :c:type:`PJ` transformation object accepts coordinates expressed
|
||||
in the units and axis order of the source CRS, and returns transformed
|
||||
coordinates in the units and axis order of the target CRS.
|
||||
|
||||
For most geographic CRS, the units will be in degrees. In rare cases, such as
|
||||
EPSG:4807 / NTF (Paris), this can be grads. For geographic CRS defined by the
|
||||
EPSG authority, the order of coordinates is latitude first, longitude second.
|
||||
When using a PROJ string, the order is the reverse; longitude first, latitude
|
||||
second.
|
||||
|
||||
For projected CRS, the units may vary (metre, us-foot, etc.). For projected CRS
|
||||
defined by the EPSG authority, and with EAST / NORTH directions, the order
|
||||
might be easting first, northing second, or the reverse. When using a PROJ
|
||||
string, the order will be easting first, northing second, except if the
|
||||
``+axis`` parameter modifies it.
|
||||
|
||||
If you prefer to work with a uniform axis order, regardless of the axis orders
|
||||
mandated by the source and target CRS, you can use the
|
||||
:c:func:`proj_normalize_for_visualization` function.
|
||||
|
||||
:c:func:`proj_normalize_for_visualization` takes a threading context and an
|
||||
existing :c:type:`PJ` object, and generates from it a new :c:type:`PJ` that
|
||||
accepts as input and returns as output coordinates using the traditional GIS
|
||||
order. That is, longitude followed by latitude, optionally followed by
|
||||
elevation and time for geographic CRS, and easting followed by northing for
|
||||
most projected CRS.
|
||||
|
||||
.. literalinclude:: ../../../examples/pj_obs_api_mini_demo.c
|
||||
:language: c
|
||||
:lines: 65-71
|
||||
:dedent: 4
|
||||
|
||||
PROJ uses its own data structures for handling coordinates. Here we use a
|
||||
:c:type:`PJ_COORD` which is easily assigned with the function :c:func:`proj_coord`.
|
||||
When using ``+proj=longlat``, the order of coordinates is longitude, latitude,
|
||||
and values are expressed in degrees. If you used instead a EPSG geographic CRS,
|
||||
like EPSG:4326 (WGS84), it would be latitude, longitude.
|
||||
Next we create a :c:type:`PJ_COORD` coordinate object, using the function
|
||||
:c:func:`proj_coord`.
|
||||
|
||||
The following example creates a coordinate for 55°N 12°E (Copenhagen).
|
||||
|
||||
Because we have normalized the transformation object with
|
||||
:c:func:`proj_normalize_for_visualization`, the order of coordinates is
|
||||
longitude followed by latitude, and the units are degrees.
|
||||
|
||||
.. literalinclude:: ../../../examples/pj_obs_api_mini_demo.c
|
||||
:language: c
|
||||
:lines: 76
|
||||
:dedent: 4
|
||||
|
||||
The coordinate defined above is transformed with :c:func:`proj_trans`. For this
|
||||
a :c:type:`PJ` object, a transformation direction (either forward or inverse)
|
||||
and the coordinate is needed. The transformed coordinate is returned in ``b``.
|
||||
Here the forward (:c:type:`PJ_FWD`) transformation from geographic to UTM is made.
|
||||
Now we are ready to transform the coordinate into UTM zone 32, using the
|
||||
function :c:func:`proj_trans`.
|
||||
|
||||
.. literalinclude:: ../../../examples/pj_obs_api_mini_demo.c
|
||||
:language: c
|
||||
:lines: 79-80
|
||||
:dedent: 4
|
||||
|
||||
The inverse transformation (UTM to geographic) is done similar to above,
|
||||
this time using :c:type:`PJ_INV` as the direction.
|
||||
:c:func:`proj_trans` takes as its arguments:
|
||||
|
||||
- a :c:type:`PJ` transformation object,
|
||||
- a :c:type:`PJ_DIRECTION` direction, and
|
||||
- the :c:type:`PJ_COORD` coordinate to transform.
|
||||
|
||||
The direction argument can be one of:
|
||||
|
||||
- ``PJ_FWD`` -- "forward" transformation from source CRS to target CRS.
|
||||
- ``PJ_IDENT`` -- "identity", return the source coordinate unchanged.
|
||||
- ``PJ_INV`` -- "inverse" transformation from target CRS to source CRS.
|
||||
|
||||
It returns the new transformed :c:type:`PJ_COORD` coordinate.
|
||||
|
||||
We can perform the transformation in reverse (from UTM zone 32 back to
|
||||
geographic) as follows:
|
||||
|
||||
.. literalinclude:: ../../../examples/pj_obs_api_mini_demo.c
|
||||
:language: c
|
||||
:lines: 81-82
|
||||
:lines: 82-83
|
||||
:dedent: 4
|
||||
|
||||
Before ending the program the allocated memory needs to be released again:
|
||||
Before ending the program, we need to release the memory allocated to our
|
||||
objects:
|
||||
|
||||
.. literalinclude:: ../../../examples/pj_obs_api_mini_demo.c
|
||||
:language: c
|
||||
:lines: 85-86
|
||||
:lines: 86-87
|
||||
:dedent: 4
|
||||
|
||||
|
||||
A complete compilable version of the above can be seen here:
|
||||
A complete compilable version of the example code can be seen below:
|
||||
|
||||
.. literalinclude:: ../../../examples/pj_obs_api_mini_demo.c
|
||||
:language: c
|
||||
|
||||
@@ -52,7 +52,7 @@ paragraph for more details.
|
||||
syntax "EPSG:2393+5717"),
|
||||
- a OGC URN combining references for concatenated operations
|
||||
(e.g. "urn:ogc:def:coordinateOperation,coordinateOperation:EPSG::3895,coordinateOperation:EPSG::1618")
|
||||
- a PROJJSON string. The jsonschema is at https://proj.org/schemas/v0.2/projjson.schema.json (*added in 6.2*)
|
||||
- a PROJJSON string. The jsonschema is at https://proj.org/schemas/v0.3/projjson.schema.json (*added in 6.2*)
|
||||
- a compound CRS made from two object names separated with " + ". e.g. "WGS 84 + EGM96 height" (*added in 7.1*)
|
||||
|
||||
Example call:
|
||||
|
||||
@@ -1,79 +0,0 @@
|
||||
.. _threads:
|
||||
|
||||
================================================================================
|
||||
Threads
|
||||
================================================================================
|
||||
|
||||
This page is about efforts to make PROJ thread safe.
|
||||
|
||||
Key Thread Safety Issues
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
* the global pj_errno variable is shared between threads and makes it
|
||||
essentially impossible to handle errors safely. Being addressed with the
|
||||
introduction of the projCtx execution context.
|
||||
* the datum shift using grid files uses globally shared lists of loaded grid
|
||||
information. Access to this has been made safe in 4.7.0 with the introduction
|
||||
of a PROJ mutex used to protect access to these memory structures (see
|
||||
pj_mutex.c).
|
||||
|
||||
projCtx
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Primarily in order to avoid having pj_errno as a global variable, a "thread
|
||||
context" structure has been introduced into a variation of the PROJ API for
|
||||
the 4.8.0 release. The pj_init() and pj_init_plus() functions now have context
|
||||
variations called pj_init_ctx() and pj_init_plus_ctx() which take a projections
|
||||
context.
|
||||
|
||||
The projections context can be created with pj_ctx_alloc(), and there is a
|
||||
global default context used when one is not provided by the application. There
|
||||
is a pj_ctx\_ set of functions to create, manipulate, query, and destroy
|
||||
contexts. The contexts are also used now to handle setting debugging mode, and
|
||||
to hold an error reporting function for textual error and debug messages. The
|
||||
API looks like:
|
||||
|
||||
::
|
||||
|
||||
projPJ pj_init_ctx( projCtx, int, char ** );
|
||||
projPJ pj_init_plus_ctx( projCtx, const char * );
|
||||
|
||||
projCtx pj_get_default_ctx(void);
|
||||
projCtx pj_get_ctx( projPJ );
|
||||
void pj_set_ctx( projPJ, projCtx );
|
||||
projCtx pj_ctx_alloc(void);
|
||||
void pj_ctx_free( projCtx );
|
||||
int pj_ctx_get_errno( projCtx );
|
||||
void pj_ctx_set_errno( projCtx, int );
|
||||
void pj_ctx_set_debug( projCtx, int );
|
||||
void pj_ctx_set_logger( projCtx, void (*)(void *, int, const char *) );
|
||||
void pj_ctx_set_app_data( projCtx, void * );
|
||||
void *pj_ctx_get_app_data( projCtx );
|
||||
|
||||
Multithreaded applications are now expected to create a projCtx per thread
|
||||
using pj_ctx_alloc(). The context's error handlers, and app data may be
|
||||
modified if desired, but at the very least each context has an internal error
|
||||
value accessed with pj_ctx_get_errno() as opposed to looking at pj_errno.
|
||||
|
||||
Note that pj_errno continues to exist, and it is set by pj_ctx_set_errno() (as
|
||||
well as setting the context specific error number), but pj_errno still suffers
|
||||
from the global shared problem between threads and should not be used by
|
||||
multithreaded applications.
|
||||
|
||||
Note that pj_init_ctx(), and pj_init_plus_ctx() will assign the projCtx to the
|
||||
created projPJ object. Functions like pj_transform(), pj_fwd() and pj_inv()
|
||||
will use the context of the projPJ for error reporting.
|
||||
|
||||
src/multistresstest.c
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
A small multi-threaded test program has been written (src/multistresstest.c)
|
||||
for testing multithreaded use of PROJ. It performs a series of reprojections
|
||||
to setup a table expected results, and then it does them many times in several
|
||||
threads to confirm that the results are consistent. At this time this program
|
||||
is not part of the builds but it can be built on linux like:
|
||||
|
||||
::
|
||||
|
||||
gcc -g multistresstest.c .libs/libproj.so -lpthread -o multistresstest
|
||||
./multistresstest
|
||||
@@ -13,9 +13,8 @@ distribution of the source code and various resource file archives. See
|
||||
Current Release
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
* **2021-03-01** `proj-8.0.0.tar.gz`_ (`md5`_)
|
||||
* **2021-03-01** `proj-data-1.5.tar.gz`_
|
||||
* **PDF Manual** `proj.pdf`_
|
||||
* **2021-09-01** `proj-8.1.1.tar.gz`_ (`md5`_)
|
||||
* **2021-07-01** `proj-data-1.7.tar.gz`_
|
||||
|
||||
.. note::
|
||||
|
||||
@@ -28,6 +27,9 @@ Current Release
|
||||
Past Releases
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
* **2021-07-01** `proj-8.1.0.tar.gz`_
|
||||
* **2021-05-05** `proj-8.0.1.tar.gz`_
|
||||
* **2021-03-01** `proj-8.0.0.tar.gz`_
|
||||
* **2021-01-01** `proj-7.2.1.tar.gz`_
|
||||
* **2020-11-01** `proj-7.2.0.tar.gz`_
|
||||
* **2020-09-01** `proj-7.1.1.tar.gz`_
|
||||
@@ -50,6 +52,9 @@ Past Releases
|
||||
* **2015-09-13** `proj-4.9.2.tar.gz`_
|
||||
* **2015-03-04** `proj-4.9.1.tar.gz`_
|
||||
|
||||
* **2021-07-01** `proj-data-1.7.tar.gz`_
|
||||
* **2021-05-05** `proj-data-1.6.tar.gz`_
|
||||
* **2021-03-01** `proj-data-1.5.tar.gz`_
|
||||
* **2021-01-01** `proj-data-1.4.tar.gz`_
|
||||
* **2020-11-01** `proj-data-1.3.tar.gz`_
|
||||
* **2020-09-01** `proj-data-1.2.tar.gz`_
|
||||
@@ -76,8 +81,11 @@ Past Releases
|
||||
* **2018-03-01** `proj-datumgrid-oceania-1.1.zip`_
|
||||
* **2018-03-01** `proj-datumgrid-oceania-1.0.zip`_
|
||||
|
||||
.. _`proj-8.1.1.tar.gz`: https://download.osgeo.org/proj/proj-8.1.1.tar.gz
|
||||
.. _`md5`: https://download.osgeo.org/proj/proj-8.1.1.tar.gz.md5
|
||||
.. _`proj-8.1.0.tar.gz`: https://download.osgeo.org/proj/proj-8.1.0.tar.gz
|
||||
.. _`proj-8.0.1.tar.gz`: https://download.osgeo.org/proj/proj-8.0.1.tar.gz
|
||||
.. _`proj-8.0.0.tar.gz`: https://download.osgeo.org/proj/proj-8.0.0.tar.gz
|
||||
.. _`md5`: https://download.osgeo.org/proj/proj-8.0.0.tar.gz.md5
|
||||
.. _`proj-7.2.1.tar.gz`: https://download.osgeo.org/proj/proj-7.2.1.tar.gz
|
||||
.. _`proj-7.2.0.tar.gz`: https://download.osgeo.org/proj/proj-7.2.0.tar.gz
|
||||
.. _`proj-7.1.1.tar.gz`: https://download.osgeo.org/proj/proj-7.1.1.tar.gz
|
||||
@@ -100,6 +108,8 @@ Past Releases
|
||||
.. _`proj-4.9.2.tar.gz`: https://download.osgeo.org/proj/proj-4.9.2.tar.gz
|
||||
.. _`proj-4.9.3.tar.gz`: https://download.osgeo.org/proj/proj-4.9.3.tar.gz
|
||||
|
||||
.. _`proj-data-1.7.tar.gz`: https://download.osgeo.org/proj/proj-data-1.7.tar.gz
|
||||
.. _`proj-data-1.6.tar.gz`: https://download.osgeo.org/proj/proj-data-1.6.tar.gz
|
||||
.. _`proj-data-1.5.tar.gz`: https://download.osgeo.org/proj/proj-data-1.5.tar.gz
|
||||
.. _`proj-data-1.4.tar.gz`: https://download.osgeo.org/proj/proj-data-1.4.tar.gz
|
||||
.. _`proj-data-1.3.tar.gz`: https://download.osgeo.org/proj/proj-data-1.3.tar.gz
|
||||
@@ -126,4 +136,3 @@ Past Releases
|
||||
.. _`proj-datumgrid-oceania-1.1.zip`: https://download.osgeo.org/proj/proj-datumgrid-oceania-1.1.zip
|
||||
.. _`proj-datumgrid-oceania-1.2.zip`: https://download.osgeo.org/proj/proj-datumgrid-oceania-1.2.zip
|
||||
.. _`proj-datumgrid-world-1.0.zip`: https://download.osgeo.org/proj/proj-datumgrid-world-1.0.zip
|
||||
.. _`proj.pdf`: https://raw.githubusercontent.com/OSGeo/PROJ/gh-pages/proj.pdf
|
||||
|
||||
@@ -30,8 +30,3 @@ PROJ
|
||||
You can download the source code for PROJ on the :ref:`download section<download>`
|
||||
and find links to prepackaged executables in the
|
||||
:ref:`installation section<install>`.
|
||||
|
||||
In addition to this website the PROJ documentation is also available in `PDF`_
|
||||
form.
|
||||
|
||||
.. _`PDF`: https://raw.githubusercontent.com/OSGeo/proj.4/gh-pages/proj.pdf
|
||||
|
||||
@@ -155,6 +155,12 @@ FSF's configuration procedure is used to ease installation of the PROJ system.
|
||||
Follow the CMake installation guide if you are not using a UNIX-like
|
||||
operating system.
|
||||
|
||||
If you are building from the git repository you have to first run::
|
||||
|
||||
./autogen.sh
|
||||
|
||||
which will generate a ``configure`` script that can be used in the next step.
|
||||
|
||||
The default destination path prefix for installed files is ``/usr/local``.
|
||||
Results from the installation script will be placed into subdirectories ``bin``,
|
||||
``include``, ``lib``, and ``man/man1``. If this default path prefix
|
||||
@@ -169,12 +175,6 @@ If another path prefix is required, then execute::
|
||||
In either case, the directory of the prefix path must exist and be writable by
|
||||
the installer.
|
||||
|
||||
If you are building from the git repository you have to first run::
|
||||
|
||||
./autogen.sh
|
||||
|
||||
which will generate a configure script that can be used as described above.
|
||||
|
||||
With the data files in place we can now build and install PROJ::
|
||||
|
||||
make
|
||||
@@ -189,7 +189,7 @@ Tests are run with::
|
||||
With a successful install of PROJ we can now install data files using the
|
||||
:program:`projsync` utility::
|
||||
|
||||
projsync --system-directory
|
||||
projsync --system-directory --all
|
||||
|
||||
which will download all resource files currently available for PROJ. If less than
|
||||
the entire collection of resource files is needed the call to :program:`projsync`
|
||||
|
||||
@@ -3,6 +3,186 @@
|
||||
News
|
||||
###############################################################################
|
||||
|
||||
8.1.1 Release Notes
|
||||
++++++++++++++++++++++++++++++++++++++++
|
||||
*September 1st 2021*
|
||||
|
||||
Updates
|
||||
-------
|
||||
|
||||
* EPSG Database updated to version 10.028 (`#2773 <https://github.com/OSGeo/PROJ/issues/2773>`_)
|
||||
|
||||
Bug Fixes
|
||||
---------
|
||||
|
||||
* Include algorithm header file to avoid build errors on Alpine Linux (`#2769 <https://github.com/OSGeo/PROJ/issues/2769>`_)
|
||||
|
||||
* CMake: fix installation of executables on iOS (`#2766 <https://github.com/OSGeo/PROJ/issues/2766>`_)
|
||||
|
||||
* Associate extents to transformations of CRS's that include GEOIDMODEL (`#2769 <https://github.com/OSGeo/PROJ/issues/2769>`_)
|
||||
|
||||
* Logging: avoid some overhead when logging is not enabled (`#2775 <https://github.com/OSGeo/PROJ/issues/2775>`_)
|
||||
|
||||
* ortho: remove useless and invalid log trace (`#2777 <https://github.com/OSGeo/PROJ/issues/2777>`_)
|
||||
|
||||
* CMake: remove external nlohmann_json from INTERFACE_LINK_LIBRARIES target (`#2781 <https://github.com/OSGeo/PROJ/issues/2781>`_)
|
||||
* reateOperations(): fix SourceTargetCRSExtentUse::NONE mode (`#2783 <https://github.com/OSGeo/PROJ/issues/2783>`_)
|
||||
|
||||
* GeoTIFF grid reading: perf improvements (`#2788 <https://github.com/OSGeo/PROJ/issues/2788>`_)
|
||||
|
||||
* :cpp:func:`Conversion::createUTM()`: avoid integer overflow (`#2796 <https://github.com/OSGeo/PROJ/issues/2796>`_)
|
||||
|
||||
* Inverse laea ellipsoidal: return ``PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN``
|
||||
when appropriates (`#2801 <https://github.com/OSGeo/PROJ/issues/2801>`_)
|
||||
|
||||
* Make sure that :c:func:`proj_crs_promote_to_3D` returns a derived CRS (`#2806 <https://github.com/OSGeo/PROJ/issues/2806>`_)
|
||||
|
||||
* :cpp:func:`createOperations()`: fix missing deg<-->rad conversion when transforming with a
|
||||
CRS that has a fallback-to-PROJ4-string behaviour and is a BoundCRS of a
|
||||
GeographicCRS (`#2808 <https://github.com/OSGeo/PROJ/issues/2808>`_)
|
||||
|
||||
* WKT2 import/export: preserve PROJ.4 CRS extension string in REMARKS[] (`#2812 <https://github.com/OSGeo/PROJ/issues/2812>`_)
|
||||
|
||||
* BoundCRS: accept importing/exporting in WKT2 and PROJJSON the
|
||||
scope/area/extent/id attributes (`#2815 <https://github.com/OSGeo/PROJ/issues/2815>`_)
|
||||
|
||||
* :cpp:func:`ConcatenatedOperation::fixStepsDirection()`: fix bad chaining of steps when
|
||||
inverse map projection is involved in non-final step (`#2819 <https://github.com/OSGeo/PROJ/issues/2819>`_)
|
||||
|
||||
|
||||
|
||||
8.1.0 Release Notes
|
||||
++++++++++++++++++++++++++++++++++++++++
|
||||
*July 1st 2021*
|
||||
|
||||
Updates
|
||||
-------
|
||||
|
||||
+ **Database**
|
||||
|
||||
* Update to EPSG v10.027 (`#2751 <https://github.com/OSGeo/PROJ/issues/2751>`_)
|
||||
|
||||
* Decrease DB size by using ``WITHOUT ROWID`` tables (`#2730 <https://github.com/OSGeo/PROJ/issues/2730>`_) (#2647)
|
||||
|
||||
* Add a ``ANALYZE`` step during ``proj.db`` creation allowing for faster lookups (`#2729 <https://github.com/OSGeo/PROJ/issues/2729>`_)
|
||||
|
||||
* Added a ``PROJ.VERSION`` metadata entry (`#2646 <https://github.com/OSGeo/PROJ/issues/2646>`_)
|
||||
|
||||
* Added NGO48 (EPSG:4273) to ETRS89 (EPSG:4258) triangulation-based transformation (`#2554 <https://github.com/OSGeo/PROJ/issues/2554>`_)
|
||||
|
||||
* Additions to the norwegian NKG2020 transformation (`#2548 <https://github.com/OSGeo/PROJ/issues/2548>`_)
|
||||
|
||||
* ESRI projection database updated to version 12.8 (`#2717 <https://github.com/OSGeo/PROJ/issues/2717>`_)
|
||||
|
||||
+ **API additions**
|
||||
|
||||
* Added :c:func:`proj_get_geoid_models_from_database()` function that returns a list of geoid models available for a given CRS (`#2681 <https://github.com/OSGeo/PROJ/issues/2681>`_)
|
||||
|
||||
* Added :c:func`proj_get_celestial_body_list_from_database()` that returns a list of celestial bodies in the PROJ database (`#2667 <https://github.com/OSGeo/PROJ/issues/2667>`_)
|
||||
|
||||
* Added :c:func:`proj_get_celestial_body_name()` (`#2662 <https://github.com/OSGeo/PROJ/issues/2662>`_)
|
||||
|
||||
+ **Various improvements**
|
||||
|
||||
* :c:func:`proj_trans()`/:program:`cs2cs`: If two operations have the same accuracy, use the one that is contained within a larger one (`#2750 <https://github.com/OSGeo/PROJ/issues/2750>`_)
|
||||
|
||||
* Share SQLite database handle among all contexts (`#2738 <https://github.com/OSGeo/PROJ/issues/2738>`_)
|
||||
|
||||
* Added ``proj/internal/mutex.hpp`` as compat layer for mingw32 for std::mutex (`#2736 <https://github.com/OSGeo/PROJ/issues/2736>`_)
|
||||
|
||||
* :program:`projsync`: make it filter out files not intended for the current version (`#2725 <https://github.com/OSGeo/PROJ/issues/2725>`_)
|
||||
|
||||
* Improvements related to ``DerivedVerticalCRS`` using Change Unit and
|
||||
Height/Depth reversal methods (`#2696 <https://github.com/OSGeo/PROJ/issues/2696>`_)
|
||||
|
||||
* Update internal ``nlohmann/json`` to 3.9.1, and add a CMake option to
|
||||
be able to use external ``nlohmann/json`` (`#2686 <https://github.com/OSGeo/PROJ/issues/2686>`_)
|
||||
|
||||
* :cpp:func:`createFromUserInput()`: change name of CRS built from URN combined references to match the convention of EPSG projected CRS (`#2677 <https://github.com/OSGeo/PROJ/issues/2677>`_)
|
||||
|
||||
* Parse compound id with two authorities, like ESRI:103668+EPSG:5703 (`#2669 <https://github.com/OSGeo/PROJ/issues/2669>`_)
|
||||
|
||||
* Added :program:`projinfo` option option ``--list-crs`` (supports ``--area``) (`#2663 <https://github.com/OSGeo/PROJ/issues/2663>`_)
|
||||
|
||||
* Added support for hyperbolic Cassini-Soldner (`#2637 <https://github.com/OSGeo/PROJ/issues/2637>`_)
|
||||
|
||||
* Added capability to get SQL statements to add custom CRS in the database (`#2577 <https://github.com/OSGeo/PROJ/issues/2577>`_)
|
||||
|
||||
Bug fixes
|
||||
---------
|
||||
|
||||
* Fix 'Please include winsock2.h before windows.h' warning with msys (`#2692 <https://github.com/OSGeo/PROJ/issues/2692>`_)
|
||||
|
||||
* Minor changes to address lint in ``geodesic.c`` (`#2752 <https://github.com/OSGeo/PROJ/issues/2752>`_)
|
||||
|
||||
* :cpp:func:`BoundCRS::identify()`: avoid incompatible transformation for WKT1 / TOWGS84 export (`#2747 <https://github.com/OSGeo/PROJ/issues/2747>`_)
|
||||
|
||||
* :c:func:`proj_create()`: do not open proj.db if string is a PROJ string, even if :c:func:`proj_context_set_autoclose_database()` has been set (`#2735 <https://github.com/OSGeo/PROJ/issues/2735>`_)
|
||||
|
||||
* Fix export of transformation to PROJ string in a particular situation where CompoundCRS are involved (`#2721 <https://github.com/OSGeo/PROJ/issues/2721>`_)
|
||||
|
||||
|
||||
8.0.1 Release Notes
|
||||
++++++++++++++++++++++++++++++++++++++++
|
||||
*May 5th 2021*
|
||||
|
||||
Updates
|
||||
-------
|
||||
|
||||
* Database: update to EPSG v10.018 (`#2636 <https://github.com/OSGeo/PROJ/issues/2636>`_)
|
||||
|
||||
* Add transformations for CHGeo2004, Swiss geoid model (`#2604 <https://github.com/OSGeo/PROJ/issues/2604>`_)
|
||||
|
||||
* Additions to the norwegian NKG2020 transformation (`#2600 <https://github.com/OSGeo/PROJ/issues/2600>`_)
|
||||
|
||||
Bug fixes
|
||||
---------
|
||||
|
||||
* :c:func:`pj_vlog()`: fix buffer overflow in case of super lengthy error message (`#2693 <https://github.com/OSGeo/PROJ/issues/2693>`_)
|
||||
|
||||
* Revert ":c:func:`proj_create_crs_to_crs_from_pj()`: do not use PROJ_SPATIAL_CRITERION_PARTIAL_INTERSECTION if area is specified" (`#2679 <https://github.com/OSGeo/PROJ/issues/2679>`_)
|
||||
|
||||
* UTM: error out when value of ``+zone=`` is not an integer (`#2672 <https://github.com/OSGeo/PROJ/issues/2672>`_)
|
||||
|
||||
* :cpp:func:`getCRSInfoList()`: make result order deterministic (by increasing auth_name,
|
||||
code) (`#2661 <https://github.com/OSGeo/PROJ/issues/2661>`_)
|
||||
|
||||
* :cpp:func:`createOperation()`: make sure no to discard deprecated operations if the
|
||||
replacement uses an unknow grid (`#2623 <https://github.com/OSGeo/PROJ/issues/2623>`_)
|
||||
|
||||
* Fix build on Solaris 11.4 (`#2621 <https://github.com/OSGeo/PROJ/issues/2621>`_)
|
||||
|
||||
* Add mapping of ESRI Equal_Area projection method to EPSG (`#2612 <https://github.com/OSGeo/PROJ/issues/2612>`_)
|
||||
|
||||
* Fix incorrect EPGS extent code for EPSG:7789>EPSG:4976 NKG transformation (`#2599 <https://github.com/OSGeo/PROJ/issues/2599>`_)
|
||||
|
||||
* fix wrong capitalization of CHENyx06_ETRS.gsb (`#2597 <https://github.com/OSGeo/PROJ/issues/2597>`_)
|
||||
|
||||
* :cpp:func:`createOperations()`: improve handling of vertical transforms when
|
||||
when compound CRSs are used (`#2592 <https://github.com/OSGeo/PROJ/issues/2592>`_)
|
||||
|
||||
* :cpp:func:`CRS::promoteTo3D()`: propagate the extent from the 2D CRS (`#2589 <https://github.com/OSGeo/PROJ/issues/2589>`_)
|
||||
|
||||
* :cpp:func:`createFromCRSCodesWithIntermediates()`: improve performance when there is
|
||||
no match (`#2583 <https://github.com/OSGeo/PROJ/issues/2583>`_)
|
||||
|
||||
* Fix :c:func:`proj_clone()` to work on 'meta' coordinate operation ``PJ*`` objects that
|
||||
can be returned by :c:func:`proj_create_crs_to_crs()` (`#2582 <https://github.com/OSGeo/PROJ/issues/2582>`_)
|
||||
|
||||
* add ``PROJ_COMPUTE_VERSION``, ``PROJ_VERSION_NUMBER``,
|
||||
``PROJ_AT_LEAST_VERSION`` macros (`#2581 <https://github.com/OSGeo/PROJ/issues/2581>`_)
|
||||
|
||||
* Make :c:func:`proj_lp_dist()` and :c:func:`proj_geod()` work on a ``PJ*`` CRS object (`#2570 <https://github.com/OSGeo/PROJ/issues/2570>`_)
|
||||
|
||||
* Fix gcc 11 ``-Wnonnull`` compilation warnings (`#2559 <https://github.com/OSGeo/PROJ/issues/2559>`_)
|
||||
|
||||
* Fix use of uninitialized memory in gie tests (`#2558 <https://github.com/OSGeo/PROJ/issues/2558>`_)
|
||||
|
||||
* :c:func:`createOperations()`: fix incorrect height transformation between 3D promoted RGF93 and CH1903+ (`#2555 <https://github.com/OSGeo/PROJ/issues/2555>`_)
|
||||
|
||||
|
||||
|
||||
>>>>>>> Stashed changes
|
||||
8.0.0 Release Notes
|
||||
++++++++++++++++++++++++++++++++++++++++
|
||||
*March 1st 2021*
|
||||
|
||||
@@ -30,8 +30,15 @@ However, the parameters below can be used in a declarative manner when used with
|
||||
|
||||
.. option:: +datum=<value>
|
||||
|
||||
Declare the datum used with the coordinates. See ``cs2cs -ld`` for a
|
||||
list of available datums.
|
||||
Declare the datum used with the coordinates. Available options are:
|
||||
``WGS84``, ``GGRS87``, ``NAD38``, ``NAD27``, ``potsdam``, ``carthage``,
|
||||
``hermannskogel``, ``ire65``, ``nzgd49``, ``OSGB336``.
|
||||
|
||||
.. note::
|
||||
|
||||
The ``+datum`` option is primarily available to support the legacy
|
||||
use of PROJ.4 strings as CRS descriptors and should in most cases
|
||||
be avoided.
|
||||
|
||||
.. option:: +towgs84=<list>
|
||||
|
||||
|
||||
@@ -46,7 +46,9 @@ topocentric conversion must be preceded by the :ref:`cart` conversion to
|
||||
perform the initial geographic to geocentric coordinates conversion.
|
||||
|
||||
The formulas used come from the "Geocentric/topocentric conversions" paragraph
|
||||
of :cite:`IOGP2018`
|
||||
of :cite:`IOGP2018`. ``+proj=topocentric`` alone corresponds to the ``EPSG:9836``
|
||||
conversion method, ``+proj=cart`` followed by ``+proj=topocentric`` corresponds
|
||||
to ``EPSG:9837``.
|
||||
|
||||
Usage
|
||||
################################################################################
|
||||
|
||||
@@ -37,6 +37,8 @@ around a given latitude and longitude.
|
||||
ellipsoid must be forced to a sphere, for example by adding a ``+f=0``
|
||||
parameter.
|
||||
|
||||
This projection method corresponds to ``EPSG:9840``.
|
||||
|
||||
Parameters
|
||||
################################################################################
|
||||
|
||||
|
||||
@@ -13,17 +13,18 @@ the same as WKT2:2019.
|
||||
|
||||
PROJJSON is available as input and output of PROJ since PROJ 6.2.
|
||||
|
||||
The current version is 0.2.
|
||||
The current version is 0.3.
|
||||
|
||||
Schema
|
||||
------
|
||||
|
||||
A JSON schema of its grammar is available at
|
||||
https://proj.org/schemas/v0.2/projjson.schema.json
|
||||
https://proj.org/schemas/v0.3/projjson.schema.json
|
||||
|
||||
History
|
||||
-------
|
||||
|
||||
* v0.3: additional properties allowed in BoundCRS object (name, scope, area, bbox, usages, remarks, id, ids)
|
||||
* v0.2: addition of geoid_model in VerticalCRS object.
|
||||
* v0.1: initial version for PROJ 6.2
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*******************************************************************************
|
||||
Tiny test of an evolving new API, demonstrating simple examples of
|
||||
2D and 3D transformations.
|
||||
Simple example code demonstrating use of the proj.h API for 2D coordinate
|
||||
transformations.
|
||||
|
||||
The main transformation setup object is PJ, well known from the two
|
||||
former proj APIs (projects.h and proj_api.h)
|
||||
@@ -42,7 +42,7 @@
|
||||
int main (void) {
|
||||
PJ_CONTEXT *C;
|
||||
PJ *P;
|
||||
PJ* P_for_GIS;
|
||||
PJ *norm;
|
||||
PJ_COORD a, b;
|
||||
|
||||
/* or you may set C=PJ_DEFAULT_CTX if you are sure you will */
|
||||
@@ -54,35 +54,36 @@ int main (void) {
|
||||
"+proj=utm +zone=32 +datum=WGS84", /* or EPSG:32632 */
|
||||
NULL);
|
||||
|
||||
if (0==P) {
|
||||
fprintf(stderr, "Oops\n");
|
||||
if (0 == P) {
|
||||
fprintf(stderr, "Failed to create transformation object.\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* This will ensure that the order of coordinates for the input CRS */
|
||||
/* will be longitude, latitude, whereas EPSG:4326 mandates latitude, */
|
||||
/* longitude */
|
||||
P_for_GIS = proj_normalize_for_visualization(C, P);
|
||||
if( 0 == P_for_GIS ) {
|
||||
fprintf(stderr, "Oops\n");
|
||||
norm = proj_normalize_for_visualization(C, P);
|
||||
if (0 == norm) {
|
||||
fprintf(stderr, "Failed to normalize transformation object.\n");
|
||||
return 1;
|
||||
}
|
||||
proj_destroy(P);
|
||||
P = P_for_GIS;
|
||||
P = norm;
|
||||
|
||||
/* a coordinate union representing Copenhagen: 55d N, 12d E */
|
||||
/* Given that we have used proj_normalize_for_visualization(), the order of
|
||||
/* coordinates is longitude, latitude, and values are expressed in degrees. */
|
||||
a = proj_coord (12, 55, 0, 0);
|
||||
a = proj_coord(12, 55, 0, 0);
|
||||
|
||||
/* transform to UTM zone 32, then back to geographical */
|
||||
b = proj_trans (P, PJ_FWD, a);
|
||||
printf ("easting: %.3f, northing: %.3f\n", b.enu.e, b.enu.n);
|
||||
b = proj_trans (P, PJ_INV, b);
|
||||
printf ("longitude: %g, latitude: %g\n", b.lp.lam, b.lp.phi);
|
||||
b = proj_trans(P, PJ_FWD, a);
|
||||
printf("easting: %.3f, northing: %.3f\n", b.enu.e, b.enu.n);
|
||||
|
||||
b = proj_trans(P, PJ_INV, b);
|
||||
printf("longitude: %g, latitude: %g\n", b.lp.lam, b.lp.phi);
|
||||
|
||||
/* Clean up */
|
||||
proj_destroy (P);
|
||||
proj_context_destroy (C); /* may be omitted in the single threaded case */
|
||||
proj_destroy(P);
|
||||
proj_context_destroy(C); /* may be omitted in the single threaded case */
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -173,6 +173,10 @@ class PROJ_GCC_DLL CRS : public common::ObjectUsage,
|
||||
PROJ_INTERNAL virtual std::list<std::pair<CRSNNPtr, int>>
|
||||
_identify(const io::AuthorityFactoryPtr &authorityFactory) const;
|
||||
|
||||
PROJ_INTERNAL void
|
||||
setProperties(const util::PropertyMap
|
||||
&properties); // throw(InvalidValueTypeException)
|
||||
|
||||
private:
|
||||
PROJ_OPAQUE_PRIVATE_DATA
|
||||
};
|
||||
@@ -1006,6 +1010,11 @@ class PROJ_GCC_DLL BoundCRS final : public CRS,
|
||||
const override; // throw(io::FormattingException)
|
||||
//! @endcond
|
||||
|
||||
PROJ_DLL static BoundCRSNNPtr
|
||||
create(const util::PropertyMap &properties, const CRSNNPtr &baseCRSIn,
|
||||
const CRSNNPtr &hubCRSIn,
|
||||
const operation::TransformationNNPtr &transformationIn);
|
||||
|
||||
PROJ_DLL static BoundCRSNNPtr
|
||||
create(const CRSNNPtr &baseCRSIn, const CRSNNPtr &hubCRSIn,
|
||||
const operation::TransformationNNPtr &transformationIn);
|
||||
@@ -1168,6 +1177,10 @@ class PROJ_GCC_DLL DerivedGeographicCRS final : public GeographicCRS,
|
||||
const operation::ConversionNNPtr &derivingConversionIn,
|
||||
const cs::EllipsoidalCSNNPtr &csIn);
|
||||
|
||||
PROJ_DLL DerivedGeographicCRSNNPtr
|
||||
demoteTo2D(const std::string &newName,
|
||||
const io::DatabaseContextPtr &dbContext) const;
|
||||
|
||||
//! @cond Doxygen_Suppress
|
||||
PROJ_INTERNAL void _exportToWKT(io::WKTFormatter *formatter)
|
||||
const override; // throw(io::FormattingException)
|
||||
|
||||
@@ -160,6 +160,21 @@ class Cache {
|
||||
keys_.splice(keys_.begin(), keys_, iter->second);
|
||||
return iter->second->value;
|
||||
}
|
||||
|
||||
/**
|
||||
* The const reference returned here is only
|
||||
* guaranteed to be valid till the next insert/delete
|
||||
*/
|
||||
const Value* getPtr(const Key& k) {
|
||||
Guard g(lock_);
|
||||
const auto iter = cache_.find(k);
|
||||
if (iter == cache_.end()) {
|
||||
return nullptr;
|
||||
}
|
||||
keys_.splice(keys_.begin(), keys_, iter->second);
|
||||
return &(iter->second->value);
|
||||
}
|
||||
|
||||
/**
|
||||
* returns a copy of the stored object (if found)
|
||||
*/
|
||||
|
||||
+5
-1
@@ -537,7 +537,11 @@ class PROJ_GCC_DLL JSONFormatter {
|
||||
// cppcheck-suppress functionStatic
|
||||
PROJ_INTERNAL bool outputId() const;
|
||||
|
||||
PROJ_INTERNAL bool outputUsage() const;
|
||||
PROJ_INTERNAL bool
|
||||
outputUsage(bool calledBeforeObjectContext = false) const;
|
||||
|
||||
PROJ_INTERNAL static const char *PROJJSON_v0_2;
|
||||
PROJ_INTERNAL static const char *PROJJSON_v0_3;
|
||||
|
||||
//! @endcond
|
||||
|
||||
|
||||
+4
-4
@@ -1,8 +1,5 @@
|
||||
.\" Man page generated from reStructuredText.
|
||||
.
|
||||
.TH "CCT" "1" "Jul 1, 2021" "8.1.0" "PROJ"
|
||||
.SH NAME
|
||||
cct \- Coordinate Conversion and Transformation
|
||||
.
|
||||
.nr rst2man-indent-level 0
|
||||
.
|
||||
@@ -30,6 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "CCT" "1" "Sep 1, 2021" "8.1.1" "PROJ"
|
||||
.SH NAME
|
||||
cct \- Coordinate Conversion and Transformation
|
||||
.SH SYNOPSIS
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
@@ -62,7 +62,7 @@ uniqueness is not guaranteed, heuristics are applied to determine the appropriat
|
||||
a OGC URN combining references for concatenated operations
|
||||
(e.g. "\fI\%urn:ogc:def:coordinateOperation,coordinateOperation:EPSG::3895,coordinateOperation:EPSG::1618\fP")
|
||||
.IP \(bu 2
|
||||
a PROJJSON string. The jsonschema is at \fI\%https://proj.org/schemas/v0.2/projjson.schema.json\fP
|
||||
a PROJJSON string. The jsonschema is at \fI\%https://proj.org/schemas/v0.3/projjson.schema.json\fP
|
||||
.UNINDENT
|
||||
.sp
|
||||
New in version 8.0.0.
|
||||
|
||||
+4
-4
@@ -1,8 +1,5 @@
|
||||
.\" Man page generated from reStructuredText.
|
||||
.
|
||||
.TH "CS2CS" "1" "Jul 1, 2021" "8.1.0" "PROJ"
|
||||
.SH NAME
|
||||
cs2cs \- Cartographic coordinate system filter
|
||||
.
|
||||
.nr rst2man-indent-level 0
|
||||
.
|
||||
@@ -30,6 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "CS2CS" "1" "Sep 1, 2021" "8.1.1" "PROJ"
|
||||
.SH NAME
|
||||
cs2cs \- Cartographic coordinate system filter
|
||||
.SH SYNOPSIS
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
@@ -70,7 +70,7 @@ e.g. for Projected 3D CRS "UTM zone 31N / WGS 84 (3D)":
|
||||
a OGC URN combining references for concatenated operations
|
||||
(e.g. "\fI\%urn:ogc:def:coordinateOperation,coordinateOperation:EPSG::3895,coordinateOperation:EPSG::1618\fP")
|
||||
.IP \(bu 2
|
||||
a PROJJSON string. The jsonschema is at \fI\%https://proj.org/schemas/v0.2/projjson.schema.json\fP (\fIadded in 6.2\fP)
|
||||
a PROJJSON string. The jsonschema is at \fI\%https://proj.org/schemas/v0.3/projjson.schema.json\fP (\fIadded in 6.2\fP)
|
||||
.IP \(bu 2
|
||||
a compound CRS made from two object names separated with " + ". e.g. "WGS 84 + EGM96 height" (\fIadded in 7.1\fP)
|
||||
.UNINDENT
|
||||
|
||||
+3
-3
@@ -1,8 +1,5 @@
|
||||
.\" Man page generated from reStructuredText.
|
||||
.
|
||||
.TH "GEOD" "1" "Jul 1, 2021" "8.1.0" "PROJ"
|
||||
.SH NAME
|
||||
geod \- Geodesic computations
|
||||
.
|
||||
.nr rst2man-indent-level 0
|
||||
.
|
||||
@@ -30,6 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "GEOD" "1" "Sep 1, 2021" "8.1.1" "PROJ"
|
||||
.SH NAME
|
||||
geod \- Geodesic computations
|
||||
.SH SYNOPSIS
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
|
||||
+3
-3
@@ -1,8 +1,5 @@
|
||||
.\" Man page generated from reStructuredText.
|
||||
.
|
||||
.TH "GIE" "1" "Jul 1, 2021" "8.1.0" "PROJ"
|
||||
.SH NAME
|
||||
gie \- The Geospatial Integrity Investigation Environment
|
||||
.
|
||||
.nr rst2man-indent-level 0
|
||||
.
|
||||
@@ -30,6 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "GIE" "1" "Sep 1, 2021" "8.1.1" "PROJ"
|
||||
.SH NAME
|
||||
gie \- The Geospatial Integrity Investigation Environment
|
||||
.SH SYNOPSIS
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
|
||||
+3
-3
@@ -1,8 +1,5 @@
|
||||
.\" Man page generated from reStructuredText.
|
||||
.
|
||||
.TH "PROJ" "1" "Jul 1, 2021" "8.1.0" "PROJ"
|
||||
.SH NAME
|
||||
proj \- Cartographic projection filter
|
||||
.
|
||||
.nr rst2man-indent-level 0
|
||||
.
|
||||
@@ -30,6 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "PROJ" "1" "Sep 1, 2021" "8.1.1" "PROJ"
|
||||
.SH NAME
|
||||
proj \- Cartographic projection filter
|
||||
.SH SYNOPSIS
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
|
||||
+4
-4
@@ -1,8 +1,5 @@
|
||||
.\" Man page generated from reStructuredText.
|
||||
.
|
||||
.TH "PROJINFO" "1" "Jul 1, 2021" "8.1.0" "PROJ"
|
||||
.SH NAME
|
||||
projinfo \- Geodetic object and coordinate operation queries
|
||||
.
|
||||
.nr rst2man-indent-level 0
|
||||
.
|
||||
@@ -30,6 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "PROJINFO" "1" "Sep 1, 2021" "8.1.1" "PROJ"
|
||||
.SH NAME
|
||||
projinfo \- Geodetic object and coordinate operation queries
|
||||
.SH SYNOPSIS
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
@@ -86,7 +86,7 @@ e.g. for Projected 3D CRS "UTM zone 31N / WGS 84 (3D)":
|
||||
a OGC URN combining references for concatenated operations
|
||||
(e.g. "\fI\%urn:ogc:def:coordinateOperation,coordinateOperation:EPSG::3895,coordinateOperation:EPSG::1618\fP")
|
||||
.IP \(bu 2
|
||||
a PROJJSON string. The jsonschema is at \fI\%https://proj.org/schemas/v0.2/projjson.schema.json\fP (\fIadded in 6.2\fP)
|
||||
a PROJJSON string. The jsonschema is at \fI\%https://proj.org/schemas/v0.3/projjson.schema.json\fP (\fIadded in 6.2\fP)
|
||||
.IP \(bu 2
|
||||
a compound CRS made from two object names separated with " + ". e.g. "WGS 84 + EGM96 height" (\fIadded in 7.1\fP)
|
||||
.UNINDENT
|
||||
|
||||
+3
-3
@@ -1,8 +1,5 @@
|
||||
.\" Man page generated from reStructuredText.
|
||||
.
|
||||
.TH "PROJSYNC" "1" "Jul 1, 2021" "8.1.0" "PROJ"
|
||||
.SH NAME
|
||||
projsync \- Downloading tool of resource files
|
||||
.
|
||||
.nr rst2man-indent-level 0
|
||||
.
|
||||
@@ -30,6 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "PROJSYNC" "1" "Sep 1, 2021" "8.1.1" "PROJ"
|
||||
.SH NAME
|
||||
projsync \- Downloading tool of resource files
|
||||
.SH SYNOPSIS
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
|
||||
@@ -0,0 +1,997 @@
|
||||
{
|
||||
"$id": "https://proj.org/schemas/v0.3/projjson.schema.json",
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"description": "Schema for PROJJSON (v0.3)",
|
||||
"$comment": "This file exists both in data/ and in schemas/vXXX/. Keep both in sync. And if changing the value of $id, change PROJJSON_CURRENT_VERSION accordingly in io.cpp",
|
||||
|
||||
"oneOf": [
|
||||
{ "$ref": "#/definitions/crs" },
|
||||
{ "$ref": "#/definitions/datum" },
|
||||
{ "$ref": "#/definitions/datum_ensemble" },
|
||||
{ "$ref": "#/definitions/ellipsoid" },
|
||||
{ "$ref": "#/definitions/prime_meridian" },
|
||||
{ "$ref": "#/definitions/single_operation" },
|
||||
{ "$ref": "#/definitions/concatenated_operation" }
|
||||
],
|
||||
|
||||
"definitions": {
|
||||
|
||||
"abridged_transformation": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"$schema" : { "type": "string" },
|
||||
"type": { "type": "string", "enum": ["AbridgedTransformation"] },
|
||||
"name": { "type": "string" },
|
||||
"method": { "$ref": "#/definitions/method" },
|
||||
"parameters": {
|
||||
"type": "array",
|
||||
"items": { "$ref": "#/definitions/parameter_value" }
|
||||
},
|
||||
"id": { "$ref": "#/definitions/id" },
|
||||
"ids": { "$ref": "#/definitions/ids" }
|
||||
},
|
||||
"required" : [ "name", "method", "parameters" ],
|
||||
"allOf": [
|
||||
{ "$ref": "#/definitions/id_ids_mutually_exclusive" }
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"axis": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"$schema" : { "type": "string" },
|
||||
"type": { "type": "string", "enum": ["Axis"] },
|
||||
"name": { "type": "string" },
|
||||
"abbreviation": { "type": "string" },
|
||||
"direction": { "type": "string",
|
||||
"enum": [ "north",
|
||||
"northNorthEast",
|
||||
"northEast",
|
||||
"eastNorthEast",
|
||||
"east",
|
||||
"eastSouthEast",
|
||||
"southEast",
|
||||
"southSouthEast",
|
||||
"south",
|
||||
"southSouthWest",
|
||||
"southWest",
|
||||
"westSouthWest",
|
||||
"west",
|
||||
"westNorthWest",
|
||||
"northWest",
|
||||
"northNorthWest",
|
||||
"up",
|
||||
"down",
|
||||
"geocentricX",
|
||||
"geocentricY",
|
||||
"geocentricZ",
|
||||
"columnPositive",
|
||||
"columnNegative",
|
||||
"rowPositive",
|
||||
"rowNegative",
|
||||
"displayRight",
|
||||
"displayLeft",
|
||||
"displayUp",
|
||||
"displayDown",
|
||||
"forward",
|
||||
"aft",
|
||||
"port",
|
||||
"starboard",
|
||||
"clockwise",
|
||||
"counterClockwise",
|
||||
"towards",
|
||||
"awayFrom",
|
||||
"future",
|
||||
"past",
|
||||
"unspecified" ] },
|
||||
"unit": { "$ref": "#/definitions/unit" },
|
||||
"id": { "$ref": "#/definitions/id" },
|
||||
"ids": { "$ref": "#/definitions/ids" }
|
||||
},
|
||||
"required" : [ "name", "abbreviation", "direction" ],
|
||||
"allOf": [
|
||||
{ "$ref": "#/definitions/id_ids_mutually_exclusive" }
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"bbox": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"east_longitude": { "type": "number" },
|
||||
"west_longitude": { "type": "number" },
|
||||
"south_latitude": { "type": "number" },
|
||||
"north_latitude": { "type": "number" }
|
||||
},
|
||||
"required" : [ "east_longitude", "west_longitude",
|
||||
"south_latitude", "north_latitude" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"bound_crs": {
|
||||
"type": "object",
|
||||
"allOf": [{ "$ref": "#/definitions/object_usage" }],
|
||||
"properties": {
|
||||
"$schema" : { "type": "string" },
|
||||
"type": { "type": "string", "enum": ["BoundCRS"] },
|
||||
"name": { "type": "string" },
|
||||
"source_crs": { "$ref": "#/definitions/crs" },
|
||||
"target_crs": { "$ref": "#/definitions/crs" },
|
||||
"transformation": { "$ref": "#/definitions/abridged_transformation" },
|
||||
"scope": {},
|
||||
"area": {},
|
||||
"bbox": {},
|
||||
"usages": {},
|
||||
"remarks": {},
|
||||
"id": {}, "ids": {}
|
||||
},
|
||||
"required" : [ "source_crs", "target_crs", "transformation" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"compound_crs": {
|
||||
"type": "object",
|
||||
"allOf": [{ "$ref": "#/definitions/object_usage" }],
|
||||
"properties": {
|
||||
"type": { "type": "string", "enum": ["CompoundCRS"] },
|
||||
"name": { "type": "string" },
|
||||
"components": {
|
||||
"type": "array",
|
||||
"items": { "$ref": "#/definitions/crs" }
|
||||
},
|
||||
"$schema" : {},
|
||||
"scope": {},
|
||||
"area": {},
|
||||
"bbox": {},
|
||||
"usages": {},
|
||||
"remarks": {},
|
||||
"id": {}, "ids": {}
|
||||
},
|
||||
"required" : [ "name", "components" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"concatenated_operation": {
|
||||
"type": "object",
|
||||
"allOf": [{ "$ref": "#/definitions/object_usage" }],
|
||||
"properties": {
|
||||
"type": { "type": "string", "enum": ["ConcatenatedOperation"] },
|
||||
"name": { "type": "string" },
|
||||
"source_crs": { "$ref": "#/definitions/crs" },
|
||||
"target_crs": { "$ref": "#/definitions/crs" },
|
||||
"steps": {
|
||||
"type": "array",
|
||||
"items": { "$ref": "#/definitions/single_operation" }
|
||||
},
|
||||
"$schema" : {},
|
||||
"scope": {},
|
||||
"area": {},
|
||||
"bbox": {},
|
||||
"usages": {},
|
||||
"remarks": {},
|
||||
"id": {}, "ids": {}
|
||||
},
|
||||
"required" : [ "name", "source_crs", "target_crs", "steps" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"conversion": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"$schema" : { "type": "string" },
|
||||
"type": { "type": "string", "enum": ["Conversion"] },
|
||||
"name": { "type": "string" },
|
||||
"method": { "$ref": "#/definitions/method" },
|
||||
"parameters": {
|
||||
"type": "array",
|
||||
"items": { "$ref": "#/definitions/parameter_value" }
|
||||
},
|
||||
"id": { "$ref": "#/definitions/id" },
|
||||
"ids": { "$ref": "#/definitions/ids" }
|
||||
},
|
||||
"required" : [ "name", "method" ],
|
||||
"allOf": [
|
||||
{ "$ref": "#/definitions/id_ids_mutually_exclusive" }
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"coordinate_system": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"$schema" : { "type": "string" },
|
||||
"type": { "type": "string", "enum": ["CoordinateSystem"] },
|
||||
"name": { "type": "string" },
|
||||
"subtype": { "type": "string",
|
||||
"enum": ["Cartesian",
|
||||
"spherical",
|
||||
"ellipsoidal",
|
||||
"vertical",
|
||||
"ordinal",
|
||||
"parametric",
|
||||
"TemporalDateTime",
|
||||
"TemporalCount",
|
||||
"TemporalMeasure"] },
|
||||
"axis": {
|
||||
"type": "array",
|
||||
"items": { "$ref": "#/definitions/axis" }
|
||||
},
|
||||
"id": { "$ref": "#/definitions/id" },
|
||||
"ids": { "$ref": "#/definitions/ids" }
|
||||
},
|
||||
"required" : [ "subtype", "axis" ],
|
||||
"allOf": [
|
||||
{ "$ref": "#/definitions/id_ids_mutually_exclusive" }
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"crs": {
|
||||
"oneOf": [
|
||||
{ "$ref": "#/definitions/bound_crs" },
|
||||
{ "$ref": "#/definitions/compound_crs" },
|
||||
{ "$ref": "#/definitions/derived_engineering_crs" },
|
||||
{ "$ref": "#/definitions/derived_geodetic_crs" },
|
||||
{ "$ref": "#/definitions/derived_parametric_crs" },
|
||||
{ "$ref": "#/definitions/derived_projected_crs" },
|
||||
{ "$ref": "#/definitions/derived_temporal_crs" },
|
||||
{ "$ref": "#/definitions/derived_vertical_crs" },
|
||||
{ "$ref": "#/definitions/engineering_crs" },
|
||||
{ "$ref": "#/definitions/geodetic_crs" },
|
||||
{ "$ref": "#/definitions/parametric_crs" },
|
||||
{ "$ref": "#/definitions/projected_crs" },
|
||||
{ "$ref": "#/definitions/temporal_crs" },
|
||||
{ "$ref": "#/definitions/vertical_crs" }
|
||||
]
|
||||
},
|
||||
|
||||
"datum": {
|
||||
"oneOf": [
|
||||
{ "$ref": "#/definitions/geodetic_reference_frame" },
|
||||
{ "$ref": "#/definitions/vertical_reference_frame" },
|
||||
{ "$ref": "#/definitions/dynamic_geodetic_reference_frame" },
|
||||
{ "$ref": "#/definitions/dynamic_vertical_reference_frame" },
|
||||
{ "$ref": "#/definitions/temporal_datum" },
|
||||
{ "$ref": "#/definitions/parametric_datum" },
|
||||
{ "$ref": "#/definitions/engineering_datum" }
|
||||
]
|
||||
},
|
||||
|
||||
"datum_ensemble": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"$schema" : { "type": "string" },
|
||||
"type": { "type": "string", "enum": ["DatumEnsemble"] },
|
||||
"name": { "type": "string" },
|
||||
"members": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"id": { "$ref": "#/definitions/id" },
|
||||
"ids": { "$ref": "#/definitions/ids" }
|
||||
},
|
||||
"required" : [ "name" ],
|
||||
"allOf": [
|
||||
{ "$ref": "#/definitions/id_ids_mutually_exclusive" }
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"ellipsoid": { "$ref": "#/definitions/ellipsoid" },
|
||||
"accuracy": { "type": "string" },
|
||||
"id": { "$ref": "#/definitions/id" },
|
||||
"ids": { "$ref": "#/definitions/ids" }
|
||||
},
|
||||
"required" : [ "name", "members", "accuracy" ],
|
||||
"allOf": [
|
||||
{ "$ref": "#/definitions/id_ids_mutually_exclusive" }
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"derived_engineering_crs": {
|
||||
"type": "object",
|
||||
"allOf": [{ "$ref": "#/definitions/object_usage" }],
|
||||
"properties": {
|
||||
"type": { "type": "string",
|
||||
"enum": ["DerivedEngineeringCRS"] },
|
||||
"name": { "type": "string" },
|
||||
"base_crs": { "$ref": "#/definitions/engineering_crs" },
|
||||
"conversion": { "$ref": "#/definitions/conversion" },
|
||||
"coordinate_system": { "$ref": "#/definitions/coordinate_system" },
|
||||
"$schema" : {},
|
||||
"scope": {},
|
||||
"area": {},
|
||||
"bbox": {},
|
||||
"usages": {},
|
||||
"remarks": {},
|
||||
"id": {}, "ids": {}
|
||||
},
|
||||
"required" : [ "name", "base_crs", "conversion", "coordinate_system" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"derived_geodetic_crs": {
|
||||
"type": "object",
|
||||
"allOf": [{ "$ref": "#/definitions/object_usage" }],
|
||||
"properties": {
|
||||
"type": { "type": "string",
|
||||
"enum": ["DerivedGeodeticCRS",
|
||||
"DerivedGeographicCRS"] },
|
||||
"name": { "type": "string" },
|
||||
"base_crs": { "$ref": "#/definitions/geodetic_crs" },
|
||||
"conversion": { "$ref": "#/definitions/conversion" },
|
||||
"coordinate_system": { "$ref": "#/definitions/coordinate_system" },
|
||||
"$schema" : {},
|
||||
"scope": {},
|
||||
"area": {},
|
||||
"bbox": {},
|
||||
"usages": {},
|
||||
"remarks": {},
|
||||
"id": {}, "ids": {}
|
||||
},
|
||||
"required" : [ "name", "base_crs", "conversion", "coordinate_system" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"derived_parametric_crs": {
|
||||
"type": "object",
|
||||
"allOf": [{ "$ref": "#/definitions/object_usage" }],
|
||||
"properties": {
|
||||
"type": { "type": "string",
|
||||
"enum": ["DerivedParametricCRS"] },
|
||||
"name": { "type": "string" },
|
||||
"base_crs": { "$ref": "#/definitions/parametric_crs" },
|
||||
"conversion": { "$ref": "#/definitions/conversion" },
|
||||
"coordinate_system": { "$ref": "#/definitions/coordinate_system" },
|
||||
"$schema" : {},
|
||||
"scope": {},
|
||||
"area": {},
|
||||
"bbox": {},
|
||||
"usages": {},
|
||||
"remarks": {},
|
||||
"id": {}, "ids": {}
|
||||
},
|
||||
"required" : [ "name", "base_crs", "conversion", "coordinate_system" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"derived_projected_crs": {
|
||||
"type": "object",
|
||||
"allOf": [{ "$ref": "#/definitions/object_usage" }],
|
||||
"properties": {
|
||||
"type": { "type": "string",
|
||||
"enum": ["DerivedProjectedCRS"] },
|
||||
"name": { "type": "string" },
|
||||
"base_crs": { "$ref": "#/definitions/projected_crs" },
|
||||
"conversion": { "$ref": "#/definitions/conversion" },
|
||||
"coordinate_system": { "$ref": "#/definitions/coordinate_system" },
|
||||
"$schema" : {},
|
||||
"scope": {},
|
||||
"area": {},
|
||||
"bbox": {},
|
||||
"usages": {},
|
||||
"remarks": {},
|
||||
"id": {}, "ids": {}
|
||||
},
|
||||
"required" : [ "name", "base_crs", "conversion", "coordinate_system" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"derived_temporal_crs": {
|
||||
"type": "object",
|
||||
"allOf": [{ "$ref": "#/definitions/object_usage" }],
|
||||
"properties": {
|
||||
"type": { "type": "string",
|
||||
"enum": ["DerivedTemporalCRS"] },
|
||||
"name": { "type": "string" },
|
||||
"base_crs": { "$ref": "#/definitions/temporal_crs" },
|
||||
"conversion": { "$ref": "#/definitions/conversion" },
|
||||
"coordinate_system": { "$ref": "#/definitions/coordinate_system" },
|
||||
"$schema" : {},
|
||||
"scope": {},
|
||||
"area": {},
|
||||
"bbox": {},
|
||||
"usages": {},
|
||||
"remarks": {},
|
||||
"id": {}, "ids": {}
|
||||
},
|
||||
"required" : [ "name", "base_crs", "conversion", "coordinate_system" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"derived_vertical_crs": {
|
||||
"type": "object",
|
||||
"allOf": [{ "$ref": "#/definitions/object_usage" }],
|
||||
"properties": {
|
||||
"type": { "type": "string",
|
||||
"enum": ["DerivedVerticalCRS"] },
|
||||
"name": { "type": "string" },
|
||||
"base_crs": { "$ref": "#/definitions/vertical_crs" },
|
||||
"conversion": { "$ref": "#/definitions/conversion" },
|
||||
"coordinate_system": { "$ref": "#/definitions/coordinate_system" },
|
||||
"$schema" : {},
|
||||
"scope": {},
|
||||
"area": {},
|
||||
"bbox": {},
|
||||
"usages": {},
|
||||
"remarks": {},
|
||||
"id": {}, "ids": {}
|
||||
},
|
||||
"required" : [ "name", "base_crs", "conversion", "coordinate_system" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"dynamic_geodetic_reference_frame": {
|
||||
"type": "object",
|
||||
"allOf": [{ "$ref": "#/definitions/geodetic_reference_frame" }],
|
||||
"properties": {
|
||||
"type": { "type": "string", "enum": ["DynamicGeodeticReferenceFrame"] },
|
||||
"name": {},
|
||||
"anchor": {},
|
||||
"ellipsoid": {},
|
||||
"prime_meridian": {},
|
||||
"frame_reference_epoch": { "type": "number" },
|
||||
"deformation_model": { "type": "string" },
|
||||
"$schema" : {},
|
||||
"scope": {},
|
||||
"area": {},
|
||||
"bbox": {},
|
||||
"usages": {},
|
||||
"remarks": {},
|
||||
"id": {}, "ids": {}
|
||||
},
|
||||
"required" : [ "name", "ellipsoid", "frame_reference_epoch" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"dynamic_vertical_reference_frame": {
|
||||
"type": "object",
|
||||
"allOf": [{ "$ref": "#/definitions/vertical_reference_frame" }],
|
||||
"properties": {
|
||||
"type": { "type": "string", "enum": ["DynamicVerticalReferenceFrame"] },
|
||||
"name": {},
|
||||
"anchor": {},
|
||||
"frame_reference_epoch": { "type": "number" },
|
||||
"deformation_model": { "type": "string" },
|
||||
"$schema" : {},
|
||||
"scope": {},
|
||||
"area": {},
|
||||
"bbox": {},
|
||||
"usages": {},
|
||||
"remarks": {},
|
||||
"id": {}, "ids": {}
|
||||
},
|
||||
"required" : [ "name", "frame_reference_epoch" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"ellipsoid": {
|
||||
"type": "object",
|
||||
"oneOf":[
|
||||
{
|
||||
"properties": {
|
||||
"$schema" : { "type": "string" },
|
||||
"type": { "type": "string", "enum": ["Ellipsoid"] },
|
||||
"name": { "type": "string" },
|
||||
"semi_major_axis": { "$ref": "#/definitions/value_in_metre_or_value_and_unit" },
|
||||
"semi_minor_axis": { "$ref": "#/definitions/value_in_metre_or_value_and_unit" },
|
||||
"id": { "$ref": "#/definitions/id" },
|
||||
"ids": { "$ref": "#/definitions/ids" }
|
||||
},
|
||||
"required" : [ "name", "semi_major_axis", "semi_minor_axis" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"$schema" : { "type": "string" },
|
||||
"type": { "type": "string", "enum": ["Ellipsoid"] },
|
||||
"name": { "type": "string" },
|
||||
"semi_major_axis": { "$ref": "#/definitions/value_in_metre_or_value_and_unit" },
|
||||
"inverse_flattening": { "type": "number" },
|
||||
"id": { "$ref": "#/definitions/id" },
|
||||
"ids": { "$ref": "#/definitions/ids" }
|
||||
},
|
||||
"required" : [ "name", "semi_major_axis", "inverse_flattening" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"$schema" : { "type": "string" },
|
||||
"type": { "type": "string", "enum": ["Ellipsoid"] },
|
||||
"name": { "type": "string" },
|
||||
"radius": { "$ref": "#/definitions/value_in_metre_or_value_and_unit" },
|
||||
"id": { "$ref": "#/definitions/id" },
|
||||
"ids": { "$ref": "#/definitions/ids" }
|
||||
},
|
||||
"required" : [ "name", "radius" ],
|
||||
"additionalProperties": false
|
||||
}
|
||||
],
|
||||
"allOf": [
|
||||
{ "$ref": "#/definitions/id_ids_mutually_exclusive" }
|
||||
]
|
||||
},
|
||||
|
||||
"engineering_crs": {
|
||||
"type": "object",
|
||||
"allOf": [{ "$ref": "#/definitions/object_usage" }],
|
||||
"properties": {
|
||||
"type": { "type": "string", "enum": ["EngineeringCRS"] },
|
||||
"name": { "type": "string" },
|
||||
"datum": { "$ref": "#/definitions/engineering_datum" },
|
||||
"coordinate_system": { "$ref": "#/definitions/coordinate_system" },
|
||||
"$schema" : {},
|
||||
"scope": {},
|
||||
"area": {},
|
||||
"bbox": {},
|
||||
"usages": {},
|
||||
"remarks": {},
|
||||
"id": {}, "ids": {}
|
||||
},
|
||||
"required" : [ "name", "datum" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"engineering_datum": {
|
||||
"type": "object",
|
||||
"allOf": [{ "$ref": "#/definitions/object_usage" }],
|
||||
"properties": {
|
||||
"type": { "type": "string", "enum": ["EngineeringDatum"] },
|
||||
"name": { "type": "string" },
|
||||
"anchor": { "type": "string" },
|
||||
"$schema" : {},
|
||||
"scope": {},
|
||||
"area": {},
|
||||
"bbox": {},
|
||||
"usages": {},
|
||||
"remarks": {},
|
||||
"id": {}, "ids": {}
|
||||
},
|
||||
"required" : [ "name" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"geodetic_crs": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"type": { "type": "string", "enum": ["GeodeticCRS", "GeographicCRS"] },
|
||||
"name": { "type": "string" },
|
||||
"datum": {
|
||||
"oneOf": [
|
||||
{ "$ref": "#/definitions/geodetic_reference_frame" },
|
||||
{ "$ref": "#/definitions/dynamic_geodetic_reference_frame" }
|
||||
]
|
||||
},
|
||||
"datum_ensemble": { "$ref": "#/definitions/datum_ensemble" },
|
||||
"coordinate_system": { "$ref": "#/definitions/coordinate_system" },
|
||||
"$schema" : {},
|
||||
"scope": {},
|
||||
"area": {},
|
||||
"bbox": {},
|
||||
"usages": {},
|
||||
"remarks": {},
|
||||
"id": {}, "ids": {}
|
||||
},
|
||||
"required" : [ "name" ],
|
||||
"description": "One and only one of datum and datum_ensemble must be provided",
|
||||
"allOf": [
|
||||
{ "$ref": "#/definitions/object_usage" },
|
||||
{ "$ref": "#/definitions/one_and_only_one_of_datum_or_datum_ensemble" }
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"geodetic_reference_frame": {
|
||||
"type": "object",
|
||||
"allOf": [{ "$ref": "#/definitions/object_usage" }],
|
||||
"properties": {
|
||||
"type": { "type": "string", "enum": ["GeodeticReferenceFrame"] },
|
||||
"name": { "type": "string" },
|
||||
"anchor": { "type": "string" },
|
||||
"ellipsoid": { "$ref": "#/definitions/ellipsoid" },
|
||||
"prime_meridian": { "$ref": "#/definitions/prime_meridian" },
|
||||
"$schema" : {},
|
||||
"scope": {},
|
||||
"area": {},
|
||||
"bbox": {},
|
||||
"usages": {},
|
||||
"remarks": {},
|
||||
"id": {}, "ids": {}
|
||||
},
|
||||
"required" : [ "name", "ellipsoid" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"id": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"authority": { "type": "string" },
|
||||
"code": {
|
||||
"oneOf": [ { "type": "string" }, { "type": "integer" } ]
|
||||
}
|
||||
},
|
||||
"required" : [ "authority", "code" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"ids": {
|
||||
"type": "array",
|
||||
"items": { "$ref": "#/definitions/id" }
|
||||
},
|
||||
|
||||
"method": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"$schema" : { "type": "string" },
|
||||
"type": { "type": "string", "enum": ["OperationMethod"]},
|
||||
"name": { "type": "string" },
|
||||
"id": { "$ref": "#/definitions/id" },
|
||||
"ids": { "$ref": "#/definitions/ids" }
|
||||
},
|
||||
"required" : [ "name" ],
|
||||
"allOf": [
|
||||
{ "$ref": "#/definitions/id_ids_mutually_exclusive" }
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"id_ids_mutually_exclusive": {
|
||||
"not": {
|
||||
"type": "object",
|
||||
"required": [ "id", "ids" ]
|
||||
}
|
||||
},
|
||||
|
||||
"one_and_only_one_of_datum_or_datum_ensemble": {
|
||||
"allOf": [
|
||||
{
|
||||
"not": {
|
||||
"type": "object",
|
||||
"required": [ "datum", "datum_ensemble" ]
|
||||
}
|
||||
},
|
||||
{
|
||||
"oneOf": [
|
||||
{ "type": "object", "required": ["datum"] },
|
||||
{ "type": "object", "required": ["datum_ensemble"] }
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"object_usage": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"$schema" : { "type": "string" },
|
||||
"scope": { "type": "string" },
|
||||
"area": { "type": "string" },
|
||||
"bbox": { "$ref": "#/definitions/bbox" },
|
||||
"remarks": { "type": "string" },
|
||||
"id": { "$ref": "#/definitions/id" },
|
||||
"ids": { "$ref": "#/definitions/ids" }
|
||||
},
|
||||
"allOf": [
|
||||
{ "$ref": "#/definitions/id_ids_mutually_exclusive" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"$schema" : { "type": "string" },
|
||||
"usages": { "$ref": "#/definitions/usages" },
|
||||
"remarks": { "type": "string" },
|
||||
"id": { "$ref": "#/definitions/id" },
|
||||
"ids": { "$ref": "#/definitions/ids" }
|
||||
},
|
||||
"allOf": [
|
||||
{ "$ref": "#/definitions/id_ids_mutually_exclusive" }
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"parameter_value": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"$schema" : { "type": "string" },
|
||||
"type": { "type": "string", "enum": ["ParameterValue"] },
|
||||
"name": { "type": "string" },
|
||||
"value": {
|
||||
"oneOf": [
|
||||
{ "type": "string" },
|
||||
{ "type": "number" }
|
||||
]
|
||||
},
|
||||
"unit": { "$ref": "#/definitions/unit" },
|
||||
"id": { "$ref": "#/definitions/id" },
|
||||
"ids": { "$ref": "#/definitions/ids" }
|
||||
},
|
||||
"required" : [ "name", "value" ],
|
||||
"allOf": [
|
||||
{ "$ref": "#/definitions/id_ids_mutually_exclusive" }
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"parametric_crs": {
|
||||
"type": "object",
|
||||
"allOf": [{ "$ref": "#/definitions/object_usage" }],
|
||||
"properties": {
|
||||
"type": { "type": "string", "enum": ["ParametricCRS"] },
|
||||
"name": { "type": "string" },
|
||||
"datum": { "$ref": "#/definitions/parametric_datum" },
|
||||
"coordinate_system": { "$ref": "#/definitions/coordinate_system" },
|
||||
"$schema" : {},
|
||||
"scope": {},
|
||||
"area": {},
|
||||
"bbox": {},
|
||||
"usages": {},
|
||||
"remarks": {},
|
||||
"id": {}, "ids": {}
|
||||
},
|
||||
"required" : [ "name", "datum" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"parametric_datum": {
|
||||
"type": "object",
|
||||
"allOf": [{ "$ref": "#/definitions/object_usage" }],
|
||||
"properties": {
|
||||
"type": { "type": "string", "enum": ["ParametricDatum"] },
|
||||
"name": { "type": "string" },
|
||||
"anchor": { "type": "string" },
|
||||
"$schema" : {},
|
||||
"scope": {},
|
||||
"area": {},
|
||||
"bbox": {},
|
||||
"usages": {},
|
||||
"remarks": {},
|
||||
"id": {}, "ids": {}
|
||||
},
|
||||
"required" : [ "name" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"prime_meridian": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"$schema" : { "type": "string" },
|
||||
"type": { "type": "string", "enum": ["PrimeMeridian"] },
|
||||
"name": { "type": "string" },
|
||||
"longitude": { "$ref": "#/definitions/value_in_degree_or_value_and_unit" },
|
||||
"id": { "$ref": "#/definitions/id" },
|
||||
"ids": { "$ref": "#/definitions/ids" }
|
||||
},
|
||||
"required" : [ "name" ],
|
||||
"allOf": [
|
||||
{ "$ref": "#/definitions/id_ids_mutually_exclusive" }
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"single_operation": {
|
||||
"oneOf": [
|
||||
{ "$ref": "#/definitions/conversion" },
|
||||
{ "$ref": "#/definitions/transformation" }
|
||||
]
|
||||
},
|
||||
|
||||
"projected_crs": {
|
||||
"type": "object",
|
||||
"allOf": [{ "$ref": "#/definitions/object_usage" }],
|
||||
"properties": {
|
||||
"type": { "type": "string",
|
||||
"enum": ["ProjectedCRS"] },
|
||||
"name": { "type": "string" },
|
||||
"base_crs": { "$ref": "#/definitions/geodetic_crs" },
|
||||
"conversion": { "$ref": "#/definitions/conversion" },
|
||||
"coordinate_system": { "$ref": "#/definitions/coordinate_system" },
|
||||
"$schema" : {},
|
||||
"scope": {},
|
||||
"area": {},
|
||||
"bbox": {},
|
||||
"usages": {},
|
||||
"remarks": {},
|
||||
"id": {}, "ids": {}
|
||||
},
|
||||
"required" : [ "name", "base_crs", "conversion", "coordinate_system" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"temporal_crs": {
|
||||
"type": "object",
|
||||
"allOf": [{ "$ref": "#/definitions/object_usage" }],
|
||||
"properties": {
|
||||
"type": { "type": "string", "enum": ["TemporalCRS"] },
|
||||
"name": { "type": "string" },
|
||||
"datum": { "$ref": "#/definitions/temporal_datum" },
|
||||
"coordinate_system": { "$ref": "#/definitions/coordinate_system" },
|
||||
"$schema" : {},
|
||||
"scope": {},
|
||||
"area": {},
|
||||
"bbox": {},
|
||||
"usages": {},
|
||||
"remarks": {},
|
||||
"id": {}, "ids": {}
|
||||
},
|
||||
"required" : [ "name", "datum" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"temporal_datum": {
|
||||
"type": "object",
|
||||
"allOf": [{ "$ref": "#/definitions/object_usage" }],
|
||||
"properties": {
|
||||
"type": { "type": "string", "enum": ["TemporalDatum"] },
|
||||
"name": { "type": "string" },
|
||||
"calendar": { "type": "string" },
|
||||
"time_origin": { "type": "string" },
|
||||
"$schema" : {},
|
||||
"scope": {},
|
||||
"area": {},
|
||||
"bbox": {},
|
||||
"usages": {},
|
||||
"remarks": {},
|
||||
"id": {}, "ids": {}
|
||||
},
|
||||
"required" : [ "name", "calendar" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"transformation": {
|
||||
"type": "object",
|
||||
"allOf": [{ "$ref": "#/definitions/object_usage" }],
|
||||
"properties": {
|
||||
"type": { "type": "string", "enum": ["Transformation"] },
|
||||
"name": { "type": "string" },
|
||||
"source_crs": { "$ref": "#/definitions/crs" },
|
||||
"target_crs": { "$ref": "#/definitions/crs" },
|
||||
"interpolation_crs": { "$ref": "#/definitions/crs" },
|
||||
"method": { "$ref": "#/definitions/method" },
|
||||
"parameters": {
|
||||
"type": "array",
|
||||
"items": { "$ref": "#/definitions/parameter_value" }
|
||||
},
|
||||
"accuracy": { "type": "string" },
|
||||
"$schema" : {},
|
||||
"scope": {},
|
||||
"area": {},
|
||||
"bbox": {},
|
||||
"usages": {},
|
||||
"remarks": {},
|
||||
"id": {}, "ids": {}
|
||||
},
|
||||
"required" : [ "name", "source_crs", "target_crs", "method", "parameters" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"unit": {
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"enum": ["metre", "degree", "unity"]
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"type": { "type": "string",
|
||||
"enum": ["LinearUnit", "AngularUnit", "ScaleUnit",
|
||||
"TimeUnit", "ParametricUnit", "Unit"] },
|
||||
"name": { "type": "string" },
|
||||
"conversion_factor": { "type": "number" },
|
||||
"id": { "$ref": "#/definitions/id" },
|
||||
"ids": { "$ref": "#/definitions/ids" }
|
||||
},
|
||||
"required" : [ "type", "name" ],
|
||||
"allOf": [
|
||||
{ "$ref": "#/definitions/id_ids_mutually_exclusive" }
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"usages": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"scope": { "type": "string" },
|
||||
"area": { "type": "string" },
|
||||
"bbox": { "$ref": "#/definitions/bbox" }
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
|
||||
"value_and_unit": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"value": { "type": "number" },
|
||||
"unit": { "$ref": "#/definitions/unit" }
|
||||
},
|
||||
"required" : [ "value", "unit" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"value_in_degree_or_value_and_unit": {
|
||||
"oneOf": [
|
||||
{ "type": "number" },
|
||||
{ "$ref": "#/definitions/value_and_unit" }
|
||||
]
|
||||
},
|
||||
|
||||
"value_in_metre_or_value_and_unit": {
|
||||
"oneOf": [
|
||||
{ "type": "number" },
|
||||
{ "$ref": "#/definitions/value_and_unit" }
|
||||
]
|
||||
},
|
||||
|
||||
"vertical_crs": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"type": { "type": "string", "enum": ["VerticalCRS"] },
|
||||
"name": { "type": "string" },
|
||||
"datum": {
|
||||
"oneOf": [
|
||||
{ "$ref": "#/definitions/vertical_reference_frame" },
|
||||
{ "$ref": "#/definitions/dynamic_vertical_reference_frame" }
|
||||
]
|
||||
},
|
||||
"datum_ensemble": { "$ref": "#/definitions/datum_ensemble" },
|
||||
"coordinate_system": { "$ref": "#/definitions/coordinate_system" },
|
||||
"geoid_model": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"interpolation_crs": { "$ref": "#/definitions/crs" },
|
||||
"id": { "$ref": "#/definitions/id" }
|
||||
},
|
||||
"required" : [ "name" ],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"$schema" : {},
|
||||
"scope": {},
|
||||
"area": {},
|
||||
"bbox": {},
|
||||
"usages": {},
|
||||
"remarks": {},
|
||||
"id": {}, "ids": {}
|
||||
},
|
||||
"required" : [ "name"],
|
||||
"description": "One and only one of datum and datum_ensemble must be provided",
|
||||
"allOf": [
|
||||
{ "$ref": "#/definitions/object_usage" },
|
||||
{ "$ref": "#/definitions/one_and_only_one_of_datum_or_datum_ensemble" }
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
|
||||
"vertical_reference_frame": {
|
||||
"type": "object",
|
||||
"allOf": [{ "$ref": "#/definitions/object_usage" }],
|
||||
"properties": {
|
||||
"type": { "type": "string", "enum": ["VerticalReferenceFrame"] },
|
||||
"name": { "type": "string" },
|
||||
"anchor": { "type": "string" },
|
||||
"$schema" : {},
|
||||
"scope": {},
|
||||
"area": {},
|
||||
"bbox": {},
|
||||
"usages": {},
|
||||
"remarks": {},
|
||||
"id": {}, "ids": {}
|
||||
},
|
||||
"required" : [ "name" ],
|
||||
"additionalProperties": false
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -167,8 +167,11 @@ for sectiondef in compounddef.iter('sectiondef'):
|
||||
test_cppfile.write("{\n")
|
||||
test_cppfile.write(" auto projCRS = proj_create_conversion_" + c_shortName + "(\n")
|
||||
test_cppfile.write(" m_ctxt")
|
||||
for param in params:
|
||||
test_cppfile.write(", 0")
|
||||
if c_shortName == 'utm':
|
||||
test_cppfile.write(", 1")
|
||||
else:
|
||||
for param in params:
|
||||
test_cppfile.write(", 0")
|
||||
if has_angle:
|
||||
test_cppfile.write(", \"Degree\", 0.0174532925199433")
|
||||
if has_linear:
|
||||
@@ -184,4 +187,4 @@ cppfile.write("/* END: Generated by scripts/create_c_api_projections.py*/\n")
|
||||
|
||||
test_cppfile.write("/* END: Generated by scripts/create_c_api_projections.py*/\n")
|
||||
|
||||
print('projections.h and .cpp, and test_projections.cpp have been generated. Manually merge them now')
|
||||
print('projections.h and .cpp, and test_projections.cpp have been generated. Manually merge them now')
|
||||
|
||||
+9
-4
@@ -18,6 +18,15 @@ TOPDIR="$SCRIPT_DIR/.."
|
||||
|
||||
pushd "${TOPDIR}" > /dev/null || exit
|
||||
|
||||
doxygen_version_cmd=$(doxygen --version)
|
||||
# remove extra info after space
|
||||
doxygen_version=${doxygen_version_cmd%% *}
|
||||
|
||||
echo "Doxygen version $doxygen_version"
|
||||
if test $doxygen_version = "1.8.17" ; then
|
||||
echo "Doxygen 1.8.17 is incompatible" && /bin/false;
|
||||
fi
|
||||
|
||||
# HTML generation
|
||||
# Check that doxygen runs warning free
|
||||
rm -rf docs/build/html/
|
||||
@@ -29,10 +38,6 @@ else
|
||||
echo "No Doxygen warnings found";
|
||||
fi
|
||||
|
||||
if test $(doxygen --version) = "1.8.17" ; then
|
||||
echo "Doxygen 1.8.17 is incompatible" && /bin/false;
|
||||
fi
|
||||
|
||||
rm -rf docs/build/xml/
|
||||
|
||||
(cat Doxyfile; printf "GENERATE_HTML=NO\nGENERATE_XML=YES\nINPUT= src/iso19111 src/iso19111/operation include/proj src/proj.h src/filemanager.cpp src/networkfilemanager.cpp src/general_doc.dox") | doxygen - > docs/build/docs_log.txt 2>&1
|
||||
|
||||
@@ -98,6 +98,7 @@ osgeo::proj::crs::BoundCRS::~BoundCRS()
|
||||
osgeo::proj::crs::BoundCRS::create(dropbox::oxygen::nn<std::shared_ptr<osgeo::proj::crs::CRS> > const&, dropbox::oxygen::nn<std::shared_ptr<osgeo::proj::crs::CRS> > const&, dropbox::oxygen::nn<std::shared_ptr<osgeo::proj::operation::Transformation> > const&)
|
||||
osgeo::proj::crs::BoundCRS::createFromNadgrids(dropbox::oxygen::nn<std::shared_ptr<osgeo::proj::crs::CRS> > const&, std::string const&)
|
||||
osgeo::proj::crs::BoundCRS::createFromTOWGS84(dropbox::oxygen::nn<std::shared_ptr<osgeo::proj::crs::CRS> > const&, std::vector<double, std::allocator<double> > const&)
|
||||
osgeo::proj::crs::BoundCRS::create(osgeo::proj::util::PropertyMap const&, dropbox::oxygen::nn<std::shared_ptr<osgeo::proj::crs::CRS> > const&, dropbox::oxygen::nn<std::shared_ptr<osgeo::proj::crs::CRS> > const&, dropbox::oxygen::nn<std::shared_ptr<osgeo::proj::operation::Transformation> > const&)
|
||||
osgeo::proj::crs::BoundCRS::hubCRS() const
|
||||
osgeo::proj::crs::BoundCRS::transformation() const
|
||||
osgeo::proj::crs::CompoundCRS::componentReferenceSystems() const
|
||||
@@ -131,6 +132,7 @@ osgeo::proj::crs::DerivedGeodeticCRS::~DerivedGeodeticCRS()
|
||||
osgeo::proj::crs::DerivedGeodeticCRS::_exportToWKT(osgeo::proj::io::WKTFormatter*) const
|
||||
osgeo::proj::crs::DerivedGeographicCRS::baseCRS() const
|
||||
osgeo::proj::crs::DerivedGeographicCRS::create(osgeo::proj::util::PropertyMap const&, dropbox::oxygen::nn<std::shared_ptr<osgeo::proj::crs::GeodeticCRS> > const&, dropbox::oxygen::nn<std::shared_ptr<osgeo::proj::operation::Conversion> > const&, dropbox::oxygen::nn<std::shared_ptr<osgeo::proj::cs::EllipsoidalCS> > const&)
|
||||
osgeo::proj::crs::DerivedGeographicCRS::demoteTo2D(std::string const&, std::shared_ptr<osgeo::proj::io::DatabaseContext> const&) const
|
||||
osgeo::proj::crs::DerivedGeographicCRS::~DerivedGeographicCRS()
|
||||
osgeo::proj::crs::DerivedProjectedCRS::baseCRS() const
|
||||
osgeo::proj::crs::DerivedProjectedCRS::create(osgeo::proj::util::PropertyMap const&, dropbox::oxygen::nn<std::shared_ptr<osgeo::proj::crs::ProjectedCRS> > const&, dropbox::oxygen::nn<std::shared_ptr<osgeo::proj::operation::Conversion> > const&, dropbox::oxygen::nn<std::shared_ptr<osgeo::proj::cs::CoordinateSystem> > const&)
|
||||
|
||||
+1
-1
@@ -50,7 +50,7 @@ geodtest_LDADD = libproj.la
|
||||
|
||||
lib_LTLIBRARIES = libproj.la
|
||||
|
||||
libproj_la_LDFLAGS = -no-undefined -version-info 23:0:1
|
||||
libproj_la_LDFLAGS = -no-undefined -version-info 23:1:1
|
||||
libproj_la_LIBADD = @SQLITE3_LIBS@ @TIFF_LIBS@ @CURL_LIBS@
|
||||
|
||||
libproj_la_SOURCES = \
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ target_link_libraries(cct PRIVATE ${PROJ_LIBRARIES})
|
||||
target_compile_options(cct PRIVATE ${PROJ_CXX_WARN_FLAGS})
|
||||
|
||||
install(TARGETS cct
|
||||
RUNTIME DESTINATION ${BINDIR})
|
||||
DESTINATION ${BINDIR})
|
||||
|
||||
if(MSVC AND BUILD_SHARED_LIBS)
|
||||
target_compile_definitions(cct PRIVATE PROJ_MSVC_DLL_IMPORT=1)
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ target_link_libraries(cs2cs PRIVATE ${PROJ_LIBRARIES})
|
||||
target_compile_options(cs2cs PRIVATE ${PROJ_CXX_WARN_FLAGS})
|
||||
|
||||
install(TARGETS cs2cs
|
||||
RUNTIME DESTINATION ${BINDIR})
|
||||
DESTINATION ${BINDIR})
|
||||
|
||||
if(MSVC AND BUILD_SHARED_LIBS)
|
||||
target_compile_definitions(cs2cs PRIVATE PROJ_MSVC_DLL_IMPORT=1)
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ target_link_libraries(geod PRIVATE ${PROJ_LIBRARIES})
|
||||
target_compile_options(geod PRIVATE ${PROJ_CXX_WARN_FLAGS})
|
||||
|
||||
install(TARGETS geod
|
||||
RUNTIME DESTINATION ${BINDIR})
|
||||
DESTINATION ${BINDIR})
|
||||
|
||||
if(MSVC AND BUILD_SHARED_LIBS)
|
||||
target_compile_definitions(geod PRIVATE PROJ_MSVC_DLL_IMPORT=1)
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ target_link_libraries(gie PRIVATE ${PROJ_LIBRARIES})
|
||||
target_compile_options(gie PRIVATE ${PROJ_CXX_WARN_FLAGS})
|
||||
|
||||
install(TARGETS gie
|
||||
RUNTIME DESTINATION ${BINDIR})
|
||||
DESTINATION ${BINDIR})
|
||||
|
||||
if(MSVC AND BUILD_SHARED_LIBS)
|
||||
target_compile_definitions(gie PRIVATE PROJ_MSVC_DLL_IMPORT=1)
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ target_link_libraries(binproj PRIVATE ${PROJ_LIBRARIES})
|
||||
target_compile_options(binproj PRIVATE ${PROJ_CXX_WARN_FLAGS})
|
||||
|
||||
install(TARGETS binproj
|
||||
RUNTIME DESTINATION ${BINDIR})
|
||||
DESTINATION ${BINDIR})
|
||||
|
||||
if(MSVC AND BUILD_SHARED_LIBS)
|
||||
target_compile_definitions(binproj PRIVATE PROJ_MSVC_DLL_IMPORT=1)
|
||||
|
||||
@@ -10,7 +10,7 @@ target_link_libraries(binprojinfo PRIVATE ${PROJ_LIBRARIES})
|
||||
target_compile_options(binprojinfo PRIVATE ${PROJ_CXX_WARN_FLAGS})
|
||||
|
||||
install(TARGETS binprojinfo
|
||||
RUNTIME DESTINATION ${BINDIR})
|
||||
DESTINATION ${BINDIR})
|
||||
|
||||
if(MSVC AND BUILD_SHARED_LIBS)
|
||||
target_compile_definitions(binprojinfo PRIVATE PROJ_MSVC_DLL_IMPORT=1)
|
||||
|
||||
@@ -8,13 +8,9 @@ set_target_properties(bin_projsync
|
||||
OUTPUT_NAME projsync)
|
||||
target_link_libraries(bin_projsync PRIVATE ${PROJ_LIBRARIES})
|
||||
target_compile_options(bin_projsync PRIVATE ${PROJ_CXX_WARN_FLAGS})
|
||||
if(NLOHMANN_JSON STREQUAL "external")
|
||||
target_compile_definitions(bin_projsync PRIVATE EXTERNAL_NLOHMANN_JSON)
|
||||
target_link_libraries(bin_projsync PRIVATE nlohmann_json::nlohmann_json)
|
||||
endif()
|
||||
|
||||
install(TARGETS bin_projsync
|
||||
RUNTIME DESTINATION ${BINDIR})
|
||||
DESTINATION ${BINDIR})
|
||||
|
||||
if(MSVC AND BUILD_SHARED_LIBS)
|
||||
target_compile_definitions(bin_projsync PRIVATE PROJ_MSVC_DLL_IMPORT=1)
|
||||
|
||||
+31
-25
@@ -38,9 +38,12 @@
|
||||
#define OUTPUT_UNITS P->right
|
||||
|
||||
|
||||
static PJ_COORD fwd_prepare (PJ *P, PJ_COORD coo) {
|
||||
static void fwd_prepare (PJ *P, PJ_COORD& coo) {
|
||||
if (HUGE_VAL==coo.v[0] || HUGE_VAL==coo.v[1] || HUGE_VAL==coo.v[2])
|
||||
return proj_coord_error ();
|
||||
{
|
||||
coo = proj_coord_error ();
|
||||
return;
|
||||
}
|
||||
|
||||
/* The helmert datum shift will choke unless it gets a sensible 4D coordinate */
|
||||
if (HUGE_VAL==coo.v[2] && P->helmert) coo.v[2] = 0.0;
|
||||
@@ -56,13 +59,15 @@ static PJ_COORD fwd_prepare (PJ *P, PJ_COORD coo) {
|
||||
{
|
||||
proj_log_error(P, _("Invalid latitude"));
|
||||
proj_errno_set (P, PROJ_ERR_COORD_TRANSFM_INVALID_COORD);
|
||||
return proj_coord_error ();
|
||||
coo = proj_coord_error ();
|
||||
return;
|
||||
}
|
||||
if (coo.lp.lam > 10 || coo.lp.lam < -10)
|
||||
{
|
||||
proj_log_error(P, _("Invalid longitude"));
|
||||
proj_errno_set (P, PROJ_ERR_COORD_TRANSFM_INVALID_COORD);
|
||||
return proj_coord_error ();
|
||||
coo = proj_coord_error ();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -89,7 +94,7 @@ static PJ_COORD fwd_prepare (PJ *P, PJ_COORD coo) {
|
||||
coo = proj_trans (P->cart, PJ_INV, coo); /* Go back to angular using local ellps */
|
||||
}
|
||||
if (coo.lp.lam==HUGE_VAL)
|
||||
return coo;
|
||||
return;
|
||||
if (P->vgridshift)
|
||||
coo = proj_trans (P->vgridshift, PJ_FWD, coo); /* Go orthometric from geometric */
|
||||
|
||||
@@ -100,18 +105,18 @@ static PJ_COORD fwd_prepare (PJ *P, PJ_COORD coo) {
|
||||
if (0==P->over)
|
||||
coo.lp.lam = adjlon(coo.lp.lam);
|
||||
|
||||
return coo;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/* We do not support gridshifts on cartesian input */
|
||||
if (INPUT_UNITS==PJ_IO_UNITS_CARTESIAN && P->helmert)
|
||||
return proj_trans (P->helmert, PJ_INV, coo);
|
||||
return coo;
|
||||
coo = proj_trans (P->helmert, PJ_INV, coo);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
static PJ_COORD fwd_finalize (PJ *P, PJ_COORD coo) {
|
||||
static void fwd_finalize (PJ *P, PJ_COORD& coo) {
|
||||
|
||||
switch (OUTPUT_UNITS) {
|
||||
|
||||
@@ -161,29 +166,28 @@ static PJ_COORD fwd_finalize (PJ *P, PJ_COORD coo) {
|
||||
|
||||
if (P->axisswap)
|
||||
coo = proj_trans (P->axisswap, PJ_FWD, coo);
|
||||
|
||||
return coo;
|
||||
}
|
||||
|
||||
|
||||
static PJ_COORD error_or_coord(PJ *P, PJ_COORD coord, int last_errno) {
|
||||
if (proj_errno(P))
|
||||
static inline PJ_COORD error_or_coord(PJ *P, PJ_COORD coord, int last_errno) {
|
||||
if (P->ctx->last_errno)
|
||||
return proj_coord_error();
|
||||
|
||||
proj_errno_restore(P, last_errno);
|
||||
P->ctx->last_errno = last_errno;
|
||||
|
||||
return coord;
|
||||
}
|
||||
|
||||
|
||||
PJ_XY pj_fwd(PJ_LP lp, PJ *P) {
|
||||
int last_errno;
|
||||
PJ_COORD coo = {{0,0,0,0}};
|
||||
coo.lp = lp;
|
||||
|
||||
last_errno = proj_errno_reset(P);
|
||||
const int last_errno = P->ctx->last_errno;
|
||||
P->ctx->last_errno = 0;
|
||||
|
||||
if (!P->skip_fwd_prepare)
|
||||
coo = fwd_prepare (P, coo);
|
||||
fwd_prepare (P, coo);
|
||||
if (HUGE_VAL==coo.v[0] || HUGE_VAL==coo.v[1])
|
||||
return proj_coord_error ().xy;
|
||||
|
||||
@@ -202,7 +206,7 @@ PJ_XY pj_fwd(PJ_LP lp, PJ *P) {
|
||||
return proj_coord_error ().xy;
|
||||
|
||||
if (!P->skip_fwd_finalize)
|
||||
coo = fwd_finalize (P, coo);
|
||||
fwd_finalize (P, coo);
|
||||
|
||||
return error_or_coord(P, coo, last_errno).xy;
|
||||
}
|
||||
@@ -210,14 +214,14 @@ PJ_XY pj_fwd(PJ_LP lp, PJ *P) {
|
||||
|
||||
|
||||
PJ_XYZ pj_fwd3d(PJ_LPZ lpz, PJ *P) {
|
||||
int last_errno;
|
||||
PJ_COORD coo = {{0,0,0,0}};
|
||||
coo.lpz = lpz;
|
||||
|
||||
last_errno = proj_errno_reset(P);
|
||||
const int last_errno = P->ctx->last_errno;
|
||||
P->ctx->last_errno = 0;
|
||||
|
||||
if (!P->skip_fwd_prepare)
|
||||
coo = fwd_prepare (P, coo);
|
||||
fwd_prepare (P, coo);
|
||||
if (HUGE_VAL==coo.v[0])
|
||||
return proj_coord_error ().xyz;
|
||||
|
||||
@@ -236,7 +240,7 @@ PJ_XYZ pj_fwd3d(PJ_LPZ lpz, PJ *P) {
|
||||
return proj_coord_error ().xyz;
|
||||
|
||||
if (!P->skip_fwd_finalize)
|
||||
coo = fwd_finalize (P, coo);
|
||||
fwd_finalize (P, coo);
|
||||
|
||||
return error_or_coord(P, coo, last_errno).xyz;
|
||||
}
|
||||
@@ -244,10 +248,12 @@ PJ_XYZ pj_fwd3d(PJ_LPZ lpz, PJ *P) {
|
||||
|
||||
|
||||
PJ_COORD pj_fwd4d (PJ_COORD coo, PJ *P) {
|
||||
int last_errno = proj_errno_reset(P);
|
||||
|
||||
const int last_errno = P->ctx->last_errno;
|
||||
P->ctx->last_errno = 0;
|
||||
|
||||
if (!P->skip_fwd_prepare)
|
||||
coo = fwd_prepare (P, coo);
|
||||
fwd_prepare (P, coo);
|
||||
if (HUGE_VAL==coo.v[0])
|
||||
return proj_coord_error ();
|
||||
|
||||
@@ -266,7 +272,7 @@ PJ_COORD pj_fwd4d (PJ_COORD coo, PJ *P) {
|
||||
return proj_coord_error ();
|
||||
|
||||
if (!P->skip_fwd_finalize)
|
||||
coo = fwd_finalize (P, coo);
|
||||
fwd_finalize (P, coo);
|
||||
|
||||
return error_or_coord(P, coo, last_errno);
|
||||
}
|
||||
|
||||
+155
-124
@@ -76,6 +76,13 @@ static void swap_words(void *dataIn, size_t word_size, size_t word_count)
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
void ExtentAndRes::computeInvRes() {
|
||||
invResX = 1.0 / resX;
|
||||
invResY = 1.0 / resY;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
bool ExtentAndRes::fullWorldLongitude() const {
|
||||
return isGeographic && east - west + resX >= 2 * M_PI - 1e-10;
|
||||
}
|
||||
@@ -126,6 +133,7 @@ static ExtentAndRes globalExtent() {
|
||||
extent.north = M_PI / 2;
|
||||
extent.resX = M_PI;
|
||||
extent.resY = M_PI / 2;
|
||||
extent.computeInvRes();
|
||||
return extent;
|
||||
}
|
||||
|
||||
@@ -249,6 +257,7 @@ GTXVerticalShiftGrid *GTXVerticalShiftGrid::open(PJ_CONTEXT *ctx,
|
||||
extent.resY = ystep * DEG_TO_RAD;
|
||||
extent.east = (xorigin + xstep * (columns - 1)) * DEG_TO_RAD;
|
||||
extent.north = (yorigin + ystep * (rows - 1)) * DEG_TO_RAD;
|
||||
extent.computeInvRes();
|
||||
|
||||
return new GTXVerticalShiftGrid(ctx, std::move(fp), name, columns, rows,
|
||||
extent);
|
||||
@@ -328,54 +337,30 @@ class BlockCache {
|
||||
public:
|
||||
void insert(uint32_t ifdIdx, uint32_t blockNumber,
|
||||
const std::vector<unsigned char> &data);
|
||||
std::shared_ptr<std::vector<unsigned char>> get(uint32_t ifdIdx,
|
||||
uint32_t blockNumber);
|
||||
const std::vector<unsigned char> *get(uint32_t ifdIdx,
|
||||
uint32_t blockNumber);
|
||||
|
||||
private:
|
||||
struct Key {
|
||||
uint32_t ifdIdx;
|
||||
uint32_t blockNumber;
|
||||
|
||||
Key(uint32_t ifdIdxIn, uint32_t blockNumberIn)
|
||||
: ifdIdx(ifdIdxIn), blockNumber(blockNumberIn) {}
|
||||
bool operator==(const Key &other) const {
|
||||
return ifdIdx == other.ifdIdx && blockNumber == other.blockNumber;
|
||||
}
|
||||
};
|
||||
|
||||
struct KeyHasher {
|
||||
std::size_t operator()(const Key &k) const {
|
||||
return k.ifdIdx ^ (k.blockNumber << 16) ^ (k.blockNumber >> 16);
|
||||
}
|
||||
};
|
||||
typedef uint64_t Key;
|
||||
|
||||
static constexpr int NUM_BLOCKS_AT_CROSSING_TILES = 4;
|
||||
static constexpr int MAX_SAMPLE_COUNT = 3;
|
||||
lru11::Cache<
|
||||
Key, std::shared_ptr<std::vector<unsigned char>>, lru11::NullLock,
|
||||
std::unordered_map<
|
||||
Key,
|
||||
typename std::list<lru11::KeyValuePair<
|
||||
Key, std::shared_ptr<std::vector<unsigned char>>>>::iterator,
|
||||
KeyHasher>>
|
||||
cache_{NUM_BLOCKS_AT_CROSSING_TILES * MAX_SAMPLE_COUNT};
|
||||
lru11::Cache<Key, std::vector<unsigned char>, lru11::NullLock> cache_{
|
||||
NUM_BLOCKS_AT_CROSSING_TILES * MAX_SAMPLE_COUNT};
|
||||
};
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
void BlockCache::insert(uint32_t ifdIdx, uint32_t blockNumber,
|
||||
const std::vector<unsigned char> &data) {
|
||||
cache_.insert(Key(ifdIdx, blockNumber),
|
||||
std::make_shared<std::vector<unsigned char>>(data));
|
||||
cache_.insert((static_cast<uint64_t>(ifdIdx) << 32) | blockNumber, data);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
std::shared_ptr<std::vector<unsigned char>>
|
||||
BlockCache::get(uint32_t ifdIdx, uint32_t blockNumber) {
|
||||
std::shared_ptr<std::vector<unsigned char>> ret;
|
||||
cache_.tryGet(Key(ifdIdx, blockNumber), ret);
|
||||
return ret;
|
||||
const std::vector<unsigned char> *BlockCache::get(uint32_t ifdIdx,
|
||||
uint32_t blockNumber) {
|
||||
return cache_.getPtr((static_cast<uint64_t>(ifdIdx) << 32) | blockNumber);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
@@ -388,7 +373,7 @@ class GTiffGrid : public Grid {
|
||||
uint32_t m_ifdIdx;
|
||||
TIFFDataType m_dt;
|
||||
uint16_t m_samplesPerPixel;
|
||||
uint16_t m_planarConfig;
|
||||
uint16_t m_planarConfig; // set to -1 if m_samplesPerPixel == 1
|
||||
bool m_bottomUp;
|
||||
toff_t m_dirOffset;
|
||||
bool m_tiled;
|
||||
@@ -397,18 +382,19 @@ class GTiffGrid : public Grid {
|
||||
mutable std::vector<unsigned char> m_buffer{};
|
||||
unsigned m_blocksPerRow = 0;
|
||||
unsigned m_blocksPerCol = 0;
|
||||
std::map<int, double> m_mapOffset{};
|
||||
std::map<int, double> m_mapScale{};
|
||||
unsigned m_blocks = 0;
|
||||
std::vector<double> m_adfOffset{};
|
||||
std::vector<double> m_adfScale{};
|
||||
std::map<std::pair<int, std::string>, std::string> m_metadata{};
|
||||
bool m_hasNodata = false;
|
||||
bool m_blockIs256Pixel = false;
|
||||
bool m_isSingleBlock = false;
|
||||
float m_noData = 0.0f;
|
||||
uint32_t m_subfileType = 0;
|
||||
|
||||
GTiffGrid(const GTiffGrid &) = delete;
|
||||
GTiffGrid &operator=(const GTiffGrid &) = delete;
|
||||
|
||||
void getScaleOffset(double &scale, double &offset, uint16_t sample) const;
|
||||
|
||||
template <class T>
|
||||
float readValue(const std::vector<unsigned char> &buffer,
|
||||
uint32_t offsetInBlock, uint16_t sample) const;
|
||||
@@ -446,7 +432,9 @@ GTiffGrid::GTiffGrid(PJ_CONTEXT *ctx, TIFF *hTIFF, BlockCache &cache, File *fp,
|
||||
uint16_t planarConfig, bool bottomUpIn)
|
||||
: Grid(nameIn, widthIn, heightIn, extentIn), m_ctx(ctx), m_hTIFF(hTIFF),
|
||||
m_cache(cache), m_fp(fp), m_ifdIdx(ifdIdx), m_dt(dtIn),
|
||||
m_samplesPerPixel(samplesPerPixelIn), m_planarConfig(planarConfig),
|
||||
m_samplesPerPixel(samplesPerPixelIn),
|
||||
m_planarConfig(samplesPerPixelIn == 1 ? static_cast<uint16_t>(-1)
|
||||
: planarConfig),
|
||||
m_bottomUp(bottomUpIn), m_dirOffset(TIFFCurrentDirOffset(hTIFF)),
|
||||
m_tiled(TIFFIsTiled(hTIFF) != 0) {
|
||||
|
||||
@@ -460,10 +448,15 @@ GTiffGrid::GTiffGrid(PJ_CONTEXT *ctx, TIFF *hTIFF, BlockCache &cache, File *fp,
|
||||
m_blockHeight = m_height;
|
||||
}
|
||||
|
||||
m_blockIs256Pixel = (m_blockWidth == 256) && (m_blockHeight == 256);
|
||||
m_isSingleBlock = (m_blockWidth == static_cast<uint32_t>(m_width)) &&
|
||||
(m_blockHeight == static_cast<uint32_t>(m_height));
|
||||
|
||||
TIFFGetField(m_hTIFF, TIFFTAG_SUBFILETYPE, &m_subfileType);
|
||||
|
||||
m_blocksPerRow = (m_width + m_blockWidth - 1) / m_blockWidth;
|
||||
m_blocksPerCol = (m_height + m_blockHeight - 1) / m_blockHeight;
|
||||
m_blocks = m_blocksPerRow * m_blocksPerCol;
|
||||
|
||||
const char *text = nullptr;
|
||||
// Poor-man XML parsing of TIFFTAG_GDAL_METADATA tag. Hopefully good
|
||||
@@ -515,16 +508,26 @@ GTiffGrid::GTiffGrid(PJ_CONTEXT *ctx, TIFF *hTIFF, BlockCache &cache, File *fp,
|
||||
break;
|
||||
const auto role = tag.substr(rolePos, endQuote - rolePos);
|
||||
if (role == "offset") {
|
||||
if (sample >= 0) {
|
||||
if (sample >= 0 &&
|
||||
static_cast<unsigned>(sample) <= m_samplesPerPixel) {
|
||||
try {
|
||||
m_mapOffset[sample] = c_locale_stod(value);
|
||||
if (m_adfOffset.empty()) {
|
||||
m_adfOffset.resize(m_samplesPerPixel);
|
||||
m_adfScale.resize(m_samplesPerPixel, 1);
|
||||
}
|
||||
m_adfOffset[sample] = c_locale_stod(value);
|
||||
} catch (const std::exception &) {
|
||||
}
|
||||
}
|
||||
} else if (role == "scale") {
|
||||
if (sample >= 0) {
|
||||
if (sample >= 0 &&
|
||||
static_cast<unsigned>(sample) <= m_samplesPerPixel) {
|
||||
try {
|
||||
m_mapScale[sample] = c_locale_stod(value);
|
||||
if (m_adfOffset.empty()) {
|
||||
m_adfOffset.resize(m_samplesPerPixel);
|
||||
m_adfScale.resize(m_samplesPerPixel, 1);
|
||||
}
|
||||
m_adfScale[sample] = c_locale_stod(value);
|
||||
} catch (const std::exception &) {
|
||||
}
|
||||
}
|
||||
@@ -555,33 +558,16 @@ GTiffGrid::~GTiffGrid() = default;
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
void GTiffGrid::getScaleOffset(double &scale, double &offset,
|
||||
uint16_t sample) const {
|
||||
{
|
||||
auto iter = m_mapScale.find(sample);
|
||||
if (iter != m_mapScale.end())
|
||||
scale = iter->second;
|
||||
}
|
||||
|
||||
{
|
||||
auto iter = m_mapOffset.find(sample);
|
||||
if (iter != m_mapOffset.end())
|
||||
offset = iter->second;
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
template <class T>
|
||||
float GTiffGrid::readValue(const std::vector<unsigned char> &buffer,
|
||||
uint32_t offsetInBlock, uint16_t sample) const {
|
||||
const auto ptr = reinterpret_cast<const T *>(buffer.data());
|
||||
assert(offsetInBlock < buffer.size() / sizeof(T));
|
||||
const auto val = ptr[offsetInBlock];
|
||||
if (!m_hasNodata || static_cast<float>(val) != m_noData) {
|
||||
double scale = 1;
|
||||
double offset = 0;
|
||||
getScaleOffset(scale, offset, sample);
|
||||
if ((!m_hasNodata || static_cast<float>(val) != m_noData) &&
|
||||
sample < m_adfScale.size()) {
|
||||
double scale = m_adfScale[sample];
|
||||
double offset = m_adfOffset[sample];
|
||||
return static_cast<float>(val * scale + offset);
|
||||
} else {
|
||||
return static_cast<float>(val);
|
||||
@@ -595,27 +581,41 @@ bool GTiffGrid::valueAt(uint16_t sample, int x, int yFromBottom,
|
||||
assert(x >= 0 && yFromBottom >= 0 && x < m_width && yFromBottom < m_height);
|
||||
assert(sample < m_samplesPerPixel);
|
||||
|
||||
const int blockX = x / m_blockWidth;
|
||||
|
||||
// All non-TIFF grids have the first rows in the file being the one
|
||||
// corresponding to the southern-most row. In GeoTIFF, the convention is
|
||||
// *generally* different (when m_bottomUp == false), TIFF being an
|
||||
// image-oriented image. If m_bottomUp == true, then we had GeoTIFF hints
|
||||
// that the first row of the image is the southern-most.
|
||||
const int yTIFF = m_bottomUp ? yFromBottom : m_height - 1 - yFromBottom;
|
||||
const int blockY = yTIFF / m_blockHeight;
|
||||
|
||||
uint32_t blockId = blockY * m_blocksPerRow + blockX;
|
||||
if (m_planarConfig == PLANARCONFIG_SEPARATE) {
|
||||
blockId += sample * m_blocksPerCol * m_blocksPerRow;
|
||||
int blockXOff;
|
||||
int blockYOff;
|
||||
uint32_t blockId;
|
||||
|
||||
if (m_blockIs256Pixel) {
|
||||
const int blockX = x / 256;
|
||||
blockXOff = x % 256;
|
||||
const int blockY = yTIFF / 256;
|
||||
blockYOff = yTIFF % 256;
|
||||
blockId = blockY * m_blocksPerRow + blockX;
|
||||
} else if (m_isSingleBlock) {
|
||||
blockXOff = x;
|
||||
blockYOff = yTIFF;
|
||||
blockId = 0;
|
||||
} else {
|
||||
const int blockX = x / m_blockWidth;
|
||||
blockXOff = x % m_blockWidth;
|
||||
const int blockY = yTIFF / m_blockHeight;
|
||||
blockYOff = yTIFF % m_blockHeight;
|
||||
blockId = blockY * m_blocksPerRow + blockX;
|
||||
}
|
||||
|
||||
auto cachedBuffer = m_cache.get(m_ifdIdx, blockId);
|
||||
std::vector<unsigned char> *pBuffer = &m_buffer;
|
||||
if (cachedBuffer != nullptr) {
|
||||
// Safe as we don't access the cache before pBuffer is used
|
||||
pBuffer = cachedBuffer.get();
|
||||
} else {
|
||||
if (m_planarConfig == PLANARCONFIG_SEPARATE) {
|
||||
blockId += sample * m_blocks;
|
||||
}
|
||||
|
||||
const std::vector<unsigned char> *pBuffer = m_cache.get(m_ifdIdx, blockId);
|
||||
if (pBuffer == nullptr) {
|
||||
if (TIFFCurrentDirOffset(m_hTIFF) != m_dirOffset &&
|
||||
!TIFFSetSubDirectory(m_hTIFF, m_dirOffset)) {
|
||||
return false;
|
||||
@@ -643,6 +643,7 @@ bool GTiffGrid::valueAt(uint16_t sample, int x, int yFromBottom,
|
||||
}
|
||||
}
|
||||
|
||||
pBuffer = &m_buffer;
|
||||
try {
|
||||
m_cache.insert(m_ifdIdx, blockId, m_buffer);
|
||||
} catch (const std::exception &e) {
|
||||
@@ -651,8 +652,11 @@ bool GTiffGrid::valueAt(uint16_t sample, int x, int yFromBottom,
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t offsetInBlock =
|
||||
(x % m_blockWidth) + (yTIFF % m_blockHeight) * m_blockWidth;
|
||||
uint32_t offsetInBlock;
|
||||
if (m_blockIs256Pixel)
|
||||
offsetInBlock = blockXOff + blockYOff * 256U;
|
||||
else
|
||||
offsetInBlock = blockXOff + blockYOff * m_blockWidth;
|
||||
if (m_planarConfig == PLANARCONFIG_CONTIG)
|
||||
offsetInBlock = offsetInBlock * m_samplesPerPixel + sample;
|
||||
|
||||
@@ -1053,6 +1057,7 @@ std::unique_ptr<GTiffGrid> GTiffDataset::nextGrid() {
|
||||
extent.resY = fabs(vRes) * mulFactor;
|
||||
extent.east = (west + hRes * (width - 1)) * mulFactor;
|
||||
extent.south = (north - vRes * (height - 1)) * mulFactor;
|
||||
extent.computeInvRes();
|
||||
|
||||
if (vRes < 0) {
|
||||
std::swap(extent.north, extent.south);
|
||||
@@ -1451,7 +1456,7 @@ const VerticalShiftGrid *VerticalShiftGrid::gridAt(double lon,
|
||||
const VerticalShiftGrid *VerticalShiftGridSet::gridAt(double lon,
|
||||
double lat) const {
|
||||
for (const auto &grid : m_grids) {
|
||||
if (dynamic_cast<NullVerticalShiftGrid *>(grid.get())) {
|
||||
if (grid->isNullGrid()) {
|
||||
return grid.get();
|
||||
}
|
||||
const auto &extent = grid->extentAndRes();
|
||||
@@ -1604,6 +1609,8 @@ NTv1Grid *NTv1Grid::open(PJ_CONTEXT *ctx, std::unique_ptr<File> fp,
|
||||
extent.north = to_double(header + 40) * DEG_TO_RAD;
|
||||
extent.resX = to_double(header + 104) * DEG_TO_RAD;
|
||||
extent.resY = to_double(header + 88) * DEG_TO_RAD;
|
||||
extent.computeInvRes();
|
||||
|
||||
if (!(fabs(extent.west) <= 4 * M_PI && fabs(extent.east) <= 4 * M_PI &&
|
||||
fabs(extent.north) <= M_PI + 1e-5 &&
|
||||
fabs(extent.south) <= M_PI + 1e-5 && extent.west < extent.east &&
|
||||
@@ -1616,9 +1623,9 @@ NTv1Grid *NTv1Grid::open(PJ_CONTEXT *ctx, std::unique_ptr<File> fp,
|
||||
return nullptr;
|
||||
}
|
||||
const int columns = static_cast<int>(
|
||||
fabs((extent.east - extent.west) / extent.resX + 0.5) + 1);
|
||||
fabs((extent.east - extent.west) * extent.invResX + 0.5) + 1);
|
||||
const int rows = static_cast<int>(
|
||||
fabs((extent.north - extent.south) / extent.resY + 0.5) + 1);
|
||||
fabs((extent.north - extent.south) * extent.invResY + 0.5) + 1);
|
||||
|
||||
return new NTv1Grid(ctx, std::move(fp), filename, columns, rows, extent);
|
||||
}
|
||||
@@ -1948,6 +1955,7 @@ std::unique_ptr<NTv2GridSet> NTv2GridSet::open(PJ_CONTEXT *ctx,
|
||||
to_double(header + OFFSET_SOUTH_LAT + 16 * 4) * DEG_TO_RAD / 3600.0;
|
||||
extent.resX =
|
||||
to_double(header + OFFSET_SOUTH_LAT + 16 * 5) * DEG_TO_RAD / 3600.0;
|
||||
extent.computeInvRes();
|
||||
|
||||
if (!(fabs(extent.west) <= 4 * M_PI && fabs(extent.east) <= 4 * M_PI &&
|
||||
fabs(extent.north) <= M_PI + 1e-5 &&
|
||||
@@ -1961,9 +1969,9 @@ std::unique_ptr<NTv2GridSet> NTv2GridSet::open(PJ_CONTEXT *ctx,
|
||||
return nullptr;
|
||||
}
|
||||
const int columns = static_cast<int>(
|
||||
fabs((extent.east - extent.west) / extent.resX + 0.5) + 1);
|
||||
fabs((extent.east - extent.west) * extent.invResX + 0.5) + 1);
|
||||
const int rows = static_cast<int>(
|
||||
fabs((extent.north - extent.south) / extent.resY + 0.5) + 1);
|
||||
fabs((extent.north - extent.south) * extent.invResY + 0.5) + 1);
|
||||
|
||||
pj_log(ctx, PJ_LOG_TRACE,
|
||||
"NTv2 %s %dx%d: LL=(%.9g,%.9g) UR=(%.9g,%.9g)", gridName.c_str(),
|
||||
@@ -2429,7 +2437,7 @@ const HorizontalShiftGrid *HorizontalShiftGrid::gridAt(double lon,
|
||||
const HorizontalShiftGrid *HorizontalShiftGridSet::gridAt(double lon,
|
||||
double lat) const {
|
||||
for (const auto &grid : m_grids) {
|
||||
if (dynamic_cast<NullHorizontalShiftGrid *>(grid.get())) {
|
||||
if (grid->isNullGrid()) {
|
||||
return grid.get();
|
||||
}
|
||||
const auto &extent = grid->extentAndRes();
|
||||
@@ -2760,7 +2768,7 @@ const GenericShiftGrid *GenericShiftGrid::gridAt(double x, double y) const {
|
||||
|
||||
const GenericShiftGrid *GenericShiftGridSet::gridAt(double x, double y) const {
|
||||
for (const auto &grid : m_grids) {
|
||||
if (dynamic_cast<NullGenericShiftGrid *>(grid.get())) {
|
||||
if (grid->isNullGrid()) {
|
||||
return grid.get();
|
||||
}
|
||||
const auto &extent = grid->extentAndRes();
|
||||
@@ -3196,7 +3204,7 @@ static double read_vgrid_value(PJ_CONTEXT *ctx, const ListOfVGrids &grids,
|
||||
}
|
||||
|
||||
/* Interpolation of a location within the grid */
|
||||
double grid_x = (input.lam - extent.west) / extent.resX;
|
||||
double grid_x = (input.lam - extent.west) * extent.invResX;
|
||||
if (input.lam < extent.west) {
|
||||
if (extent.fullWorldLongitude()) {
|
||||
// The first fmod goes to ]-lim, lim[ range
|
||||
@@ -3205,7 +3213,7 @@ static double read_vgrid_value(PJ_CONTEXT *ctx, const ListOfVGrids &grids,
|
||||
grid->width(),
|
||||
grid->width());
|
||||
} else {
|
||||
grid_x = (input.lam + 2 * M_PI - extent.west) / extent.resX;
|
||||
grid_x = (input.lam + 2 * M_PI - extent.west) * extent.invResX;
|
||||
}
|
||||
} else if (input.lam > extent.east) {
|
||||
if (extent.fullWorldLongitude()) {
|
||||
@@ -3215,10 +3223,10 @@ static double read_vgrid_value(PJ_CONTEXT *ctx, const ListOfVGrids &grids,
|
||||
grid->width(),
|
||||
grid->width());
|
||||
} else {
|
||||
grid_x = (input.lam - 2 * M_PI - extent.west) / extent.resX;
|
||||
grid_x = (input.lam - 2 * M_PI - extent.west) * extent.invResX;
|
||||
}
|
||||
}
|
||||
double grid_y = (input.phi - extent.south) / extent.resY;
|
||||
double grid_y = (input.phi - extent.south) * extent.invResY;
|
||||
int grid_ix = static_cast<int>(lround(floor(grid_x)));
|
||||
if (!(grid_ix >= 0 && grid_ix < grid->width())) {
|
||||
// in the unlikely case we end up here...
|
||||
@@ -3262,39 +3270,60 @@ static double read_vgrid_value(PJ_CONTEXT *ctx, const ListOfVGrids &grids,
|
||||
return HUGE_VAL;
|
||||
}
|
||||
|
||||
double total_weight = 0.0;
|
||||
int n_weights = 0;
|
||||
double value = 0.0f;
|
||||
double value = 0.0;
|
||||
|
||||
if (!grid->isNodata(value_a, vmultiplier)) {
|
||||
double weight = (1.0 - grid_x) * (1.0 - grid_y);
|
||||
value += value_a * weight;
|
||||
total_weight += weight;
|
||||
n_weights++;
|
||||
}
|
||||
if (!grid->isNodata(value_b, vmultiplier)) {
|
||||
double weight = (grid_x) * (1.0 - grid_y);
|
||||
value += value_b * weight;
|
||||
total_weight += weight;
|
||||
n_weights++;
|
||||
}
|
||||
if (!grid->isNodata(value_c, vmultiplier)) {
|
||||
double weight = (1.0 - grid_x) * (grid_y);
|
||||
value += value_c * weight;
|
||||
total_weight += weight;
|
||||
n_weights++;
|
||||
}
|
||||
if (!grid->isNodata(value_d, vmultiplier)) {
|
||||
double weight = (grid_x) * (grid_y);
|
||||
value += value_d * weight;
|
||||
total_weight += weight;
|
||||
n_weights++;
|
||||
}
|
||||
if (n_weights == 0) {
|
||||
const double grid_x_y = grid_x * grid_y;
|
||||
const bool a_valid = !grid->isNodata(value_a, vmultiplier);
|
||||
const bool b_valid = !grid->isNodata(value_b, vmultiplier);
|
||||
const bool c_valid = !grid->isNodata(value_c, vmultiplier);
|
||||
const bool d_valid = !grid->isNodata(value_d, vmultiplier);
|
||||
const int countValid =
|
||||
static_cast<int>(a_valid) + static_cast<int>(b_valid) +
|
||||
static_cast<int>(c_valid) + static_cast<int>(d_valid);
|
||||
if (countValid == 4) {
|
||||
{
|
||||
double weight = 1.0 - grid_x - grid_y + grid_x_y;
|
||||
value = value_a * weight;
|
||||
}
|
||||
{
|
||||
double weight = grid_x - grid_x_y;
|
||||
value += value_b * weight;
|
||||
}
|
||||
{
|
||||
double weight = grid_y - grid_x_y;
|
||||
value += value_c * weight;
|
||||
}
|
||||
{
|
||||
double weight = grid_x_y;
|
||||
value += value_d * weight;
|
||||
}
|
||||
} else if (countValid == 0) {
|
||||
proj_context_errno_set(ctx, PROJ_ERR_COORD_TRANSFM_GRID_AT_NODATA);
|
||||
value = HUGE_VAL;
|
||||
} else if (n_weights != 4)
|
||||
} else {
|
||||
double total_weight = 0.0;
|
||||
if (a_valid) {
|
||||
double weight = 1.0 - grid_x - grid_y + grid_x_y;
|
||||
value = value_a * weight;
|
||||
total_weight = weight;
|
||||
}
|
||||
if (b_valid) {
|
||||
double weight = grid_x - grid_x_y;
|
||||
value += value_b * weight;
|
||||
total_weight += weight;
|
||||
}
|
||||
if (c_valid) {
|
||||
double weight = grid_y - grid_x_y;
|
||||
value += value_c * weight;
|
||||
total_weight += weight;
|
||||
}
|
||||
if (d_valid) {
|
||||
double weight = grid_x_y;
|
||||
value += value_d * weight;
|
||||
total_weight += weight;
|
||||
}
|
||||
value /= total_weight;
|
||||
}
|
||||
|
||||
return value * vmultiplier;
|
||||
}
|
||||
@@ -3364,8 +3393,10 @@ double pj_vgrid_value(PJ *P, const ListOfVGrids &grids, PJ_LP lp,
|
||||
double value;
|
||||
|
||||
value = read_vgrid_value(P->ctx, grids, lp, vmultiplier);
|
||||
proj_log_trace(P, "proj_vgrid_value: (%f, %f) = %f", lp.lam * RAD_TO_DEG,
|
||||
lp.phi * RAD_TO_DEG, value);
|
||||
if (pj_log_active(P->ctx, PJ_LOG_TRACE)) {
|
||||
proj_log_trace(P, "proj_vgrid_value: (%f, %f) = %f",
|
||||
lp.lam * RAD_TO_DEG, lp.phi * RAD_TO_DEG, value);
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
@@ -3413,14 +3444,14 @@ bool pj_bilinear_interpolation_three_samples(
|
||||
// by identifying the lower-left x,y of it (ix, iy), and the upper-right
|
||||
// (ix2, iy2)
|
||||
|
||||
double grid_x = (lp.lam - extent.west) / extent.resX;
|
||||
double grid_x = (lp.lam - extent.west) * extent.invResX;
|
||||
// Special case for grids with world extent, and dealing with wrap-around
|
||||
if (lp.lam < extent.west) {
|
||||
grid_x = (lp.lam + 2 * M_PI - extent.west) / extent.resX;
|
||||
grid_x = (lp.lam + 2 * M_PI - extent.west) * extent.invResX;
|
||||
} else if (lp.lam > extent.east) {
|
||||
grid_x = (lp.lam - 2 * M_PI - extent.west) / extent.resX;
|
||||
grid_x = (lp.lam - 2 * M_PI - extent.west) * extent.invResX;
|
||||
}
|
||||
double grid_y = (lp.phi - extent.south) / extent.resY;
|
||||
double grid_y = (lp.phi - extent.south) * extent.invResY;
|
||||
int ix = static_cast<int>(grid_x);
|
||||
int iy = static_cast<int>(grid_y);
|
||||
int ix2 = std::min(ix + 1, grid->width() - 1);
|
||||
|
||||
@@ -45,6 +45,10 @@ struct ExtentAndRes {
|
||||
double north; // in radian for geographic, in CRS units otherwise
|
||||
double resX; // in radian for geographic, in CRS units otherwise
|
||||
double resY; // in radian for geographic, in CRS units otherwise
|
||||
double invResX; // = 1 / resX;
|
||||
double invResY; // = 1 / resY;
|
||||
|
||||
void computeInvRes();
|
||||
|
||||
bool fullWorldLongitude() const;
|
||||
bool contains(const ExtentAndRes &other) const;
|
||||
|
||||
+29
-33
@@ -36,10 +36,11 @@
|
||||
#define INPUT_UNITS P->right
|
||||
#define OUTPUT_UNITS P->left
|
||||
|
||||
static PJ_COORD inv_prepare (PJ *P, PJ_COORD coo) {
|
||||
static void inv_prepare (PJ *P, PJ_COORD& coo) {
|
||||
if (coo.v[0] == HUGE_VAL || coo.v[1] == HUGE_VAL || coo.v[2] == HUGE_VAL) {
|
||||
proj_errno_set (P, PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN);
|
||||
return proj_coord_error ();
|
||||
coo = proj_coord_error ();
|
||||
return;
|
||||
}
|
||||
|
||||
/* The helmert datum shift will choke unless it gets a sensible 4D coordinate */
|
||||
@@ -52,10 +53,10 @@ static PJ_COORD inv_prepare (PJ *P, PJ_COORD coo) {
|
||||
/* Handle remaining possible input types */
|
||||
switch (INPUT_UNITS) {
|
||||
case PJ_IO_UNITS_WHATEVER:
|
||||
return coo;
|
||||
break;
|
||||
|
||||
case PJ_IO_UNITS_DEGREES:
|
||||
return coo;
|
||||
break;
|
||||
|
||||
/* de-scale and de-offset */
|
||||
case PJ_IO_UNITS_CARTESIAN:
|
||||
@@ -65,8 +66,7 @@ static PJ_COORD inv_prepare (PJ *P, PJ_COORD coo) {
|
||||
if (P->is_geocent) {
|
||||
coo = proj_trans (P->cart, PJ_INV, coo);
|
||||
}
|
||||
|
||||
return coo;
|
||||
break;
|
||||
|
||||
case PJ_IO_UNITS_PROJECTED:
|
||||
case PJ_IO_UNITS_CLASSIC:
|
||||
@@ -74,7 +74,7 @@ static PJ_COORD inv_prepare (PJ *P, PJ_COORD coo) {
|
||||
coo.xyz.y = P->to_meter * coo.xyz.y - P->y0;
|
||||
coo.xyz.z = P->vto_meter * coo.xyz.z - P->z0;
|
||||
if (INPUT_UNITS==PJ_IO_UNITS_PROJECTED)
|
||||
return coo;
|
||||
return;
|
||||
|
||||
/* Classic proj.4 functions expect plane coordinates in units of the semimajor axis */
|
||||
/* Multiplying by ra, rather than dividing by a because the CalCOFI projection */
|
||||
@@ -82,23 +82,20 @@ static PJ_COORD inv_prepare (PJ *P, PJ_COORD coo) {
|
||||
/* (CalCOFI avoids further scaling by stomping - but a better solution is possible) */
|
||||
coo.xyz.x *= P->ra;
|
||||
coo.xyz.y *= P->ra;
|
||||
return coo;
|
||||
break;
|
||||
|
||||
case PJ_IO_UNITS_RADIANS:
|
||||
coo.lpz.z = P->vto_meter * coo.lpz.z - P->z0;
|
||||
break;
|
||||
}
|
||||
|
||||
/* Should not happen, so we could return pj_coord_err here */
|
||||
return coo;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static PJ_COORD inv_finalize (PJ *P, PJ_COORD coo) {
|
||||
static void inv_finalize (PJ *P, PJ_COORD& coo) {
|
||||
if (coo.xyz.x == HUGE_VAL) {
|
||||
proj_errno_set (P, PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN);
|
||||
return proj_coord_error ();
|
||||
coo = proj_coord_error ();
|
||||
}
|
||||
|
||||
if (OUTPUT_UNITS==PJ_IO_UNITS_RADIANS) {
|
||||
@@ -113,7 +110,7 @@ static PJ_COORD inv_finalize (PJ *P, PJ_COORD coo) {
|
||||
if (P->vgridshift)
|
||||
coo = proj_trans (P->vgridshift, PJ_INV, coo); /* Go geometric from orthometric */
|
||||
if (coo.lp.lam==HUGE_VAL)
|
||||
return coo;
|
||||
return;
|
||||
if (P->hgridshift)
|
||||
coo = proj_trans (P->hgridshift, PJ_FWD, coo);
|
||||
else if (P->helmert || (P->cart_wgs84 != nullptr && P->cart != nullptr)) {
|
||||
@@ -123,35 +120,32 @@ static PJ_COORD inv_finalize (PJ *P, PJ_COORD coo) {
|
||||
coo = proj_trans (P->cart_wgs84, PJ_INV, coo); /* Go back to angular using WGS84 ellps */
|
||||
}
|
||||
if (coo.lp.lam==HUGE_VAL)
|
||||
return coo;
|
||||
return;
|
||||
|
||||
/* If input latitude was geocentrical, convert back to geocentrical */
|
||||
if (P->geoc)
|
||||
coo = pj_geocentric_latitude (P, PJ_FWD, coo);
|
||||
}
|
||||
|
||||
return coo;
|
||||
}
|
||||
|
||||
|
||||
static PJ_COORD error_or_coord(PJ *P, PJ_COORD coord, int last_errno) {
|
||||
if (proj_errno(P))
|
||||
static inline PJ_COORD error_or_coord(PJ *P, PJ_COORD coord, int last_errno) {
|
||||
if (P->ctx->last_errno)
|
||||
return proj_coord_error();
|
||||
|
||||
proj_errno_restore(P, last_errno);
|
||||
P->ctx->last_errno = last_errno;
|
||||
|
||||
return coord;
|
||||
}
|
||||
|
||||
|
||||
PJ_LP pj_inv(PJ_XY xy, PJ *P) {
|
||||
int last_errno;
|
||||
PJ_COORD coo = {{0,0,0,0}};
|
||||
coo.xy = xy;
|
||||
|
||||
last_errno = proj_errno_reset(P);
|
||||
const int last_errno = P->ctx->last_errno;
|
||||
P->ctx->last_errno = 0;
|
||||
|
||||
if (!P->skip_inv_prepare)
|
||||
coo = inv_prepare (P, coo);
|
||||
inv_prepare (P, coo);
|
||||
if (HUGE_VAL==coo.v[0])
|
||||
return proj_coord_error ().lp;
|
||||
|
||||
@@ -170,7 +164,7 @@ PJ_LP pj_inv(PJ_XY xy, PJ *P) {
|
||||
return proj_coord_error ().lp;
|
||||
|
||||
if (!P->skip_inv_finalize)
|
||||
coo = inv_finalize (P, coo);
|
||||
inv_finalize (P, coo);
|
||||
|
||||
return error_or_coord(P, coo, last_errno).lp;
|
||||
}
|
||||
@@ -178,14 +172,14 @@ PJ_LP pj_inv(PJ_XY xy, PJ *P) {
|
||||
|
||||
|
||||
PJ_LPZ pj_inv3d (PJ_XYZ xyz, PJ *P) {
|
||||
int last_errno;
|
||||
PJ_COORD coo = {{0,0,0,0}};
|
||||
coo.xyz = xyz;
|
||||
|
||||
last_errno = proj_errno_reset(P);
|
||||
const int last_errno = P->ctx->last_errno;
|
||||
P->ctx->last_errno = 0;
|
||||
|
||||
if (!P->skip_inv_prepare)
|
||||
coo = inv_prepare (P, coo);
|
||||
inv_prepare (P, coo);
|
||||
if (HUGE_VAL==coo.v[0])
|
||||
return proj_coord_error ().lpz;
|
||||
|
||||
@@ -204,7 +198,7 @@ PJ_LPZ pj_inv3d (PJ_XYZ xyz, PJ *P) {
|
||||
return proj_coord_error ().lpz;
|
||||
|
||||
if (!P->skip_inv_finalize)
|
||||
coo = inv_finalize (P, coo);
|
||||
inv_finalize (P, coo);
|
||||
|
||||
return error_or_coord(P, coo, last_errno).lpz;
|
||||
}
|
||||
@@ -212,10 +206,12 @@ PJ_LPZ pj_inv3d (PJ_XYZ xyz, PJ *P) {
|
||||
|
||||
|
||||
PJ_COORD pj_inv4d (PJ_COORD coo, PJ *P) {
|
||||
int last_errno = proj_errno_reset(P);
|
||||
|
||||
const int last_errno = P->ctx->last_errno;
|
||||
P->ctx->last_errno = 0;
|
||||
|
||||
if (!P->skip_inv_prepare)
|
||||
coo = inv_prepare (P, coo);
|
||||
inv_prepare (P, coo);
|
||||
if (HUGE_VAL==coo.v[0])
|
||||
return proj_coord_error ();
|
||||
|
||||
@@ -234,7 +230,7 @@ PJ_COORD pj_inv4d (PJ_COORD coo, PJ *P) {
|
||||
return proj_coord_error ();
|
||||
|
||||
if (!P->skip_inv_finalize)
|
||||
coo = inv_finalize (P, coo);
|
||||
inv_finalize (P, coo);
|
||||
|
||||
return error_or_coord(P, coo, last_errno);
|
||||
}
|
||||
|
||||
+172
-34
@@ -825,6 +825,64 @@ bool CRS::mustAxisOrderBeSwitchedForVisualization() const {
|
||||
|
||||
//! @cond Doxygen_Suppress
|
||||
|
||||
void CRS::setProperties(
|
||||
const util::PropertyMap &properties) // throw(InvalidValueTypeException)
|
||||
{
|
||||
std::string l_remarks;
|
||||
std::string extensionProj4;
|
||||
properties.getStringValue(IdentifiedObject::REMARKS_KEY, l_remarks);
|
||||
properties.getStringValue("EXTENSION_PROJ4", extensionProj4);
|
||||
|
||||
const char *PROJ_CRS_STRING_PREFIX = "PROJ CRS string: ";
|
||||
const char *PROJ_CRS_STRING_SUFFIX = ". ";
|
||||
const auto beginOfProjStringPos = l_remarks.find(PROJ_CRS_STRING_PREFIX);
|
||||
if (beginOfProjStringPos == std::string::npos && extensionProj4.empty()) {
|
||||
ObjectUsage::setProperties(properties);
|
||||
return;
|
||||
}
|
||||
|
||||
util::PropertyMap newProperties(properties);
|
||||
|
||||
// Parse remarks and extract EXTENSION_PROJ4 from it
|
||||
if (extensionProj4.empty()) {
|
||||
if (beginOfProjStringPos != std::string::npos) {
|
||||
const auto endOfProjStringPos =
|
||||
l_remarks.find(PROJ_CRS_STRING_SUFFIX, beginOfProjStringPos);
|
||||
if (endOfProjStringPos == std::string::npos) {
|
||||
extensionProj4 = l_remarks.substr(
|
||||
beginOfProjStringPos + strlen(PROJ_CRS_STRING_PREFIX));
|
||||
} else {
|
||||
extensionProj4 = l_remarks.substr(
|
||||
beginOfProjStringPos + strlen(PROJ_CRS_STRING_PREFIX),
|
||||
endOfProjStringPos - beginOfProjStringPos -
|
||||
strlen(PROJ_CRS_STRING_PREFIX));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!extensionProj4.empty()) {
|
||||
if (beginOfProjStringPos == std::string::npos) {
|
||||
// Add EXTENSION_PROJ4 to remarks
|
||||
l_remarks =
|
||||
PROJ_CRS_STRING_PREFIX + extensionProj4 +
|
||||
(l_remarks.empty() ? std::string()
|
||||
: PROJ_CRS_STRING_SUFFIX + l_remarks);
|
||||
}
|
||||
}
|
||||
|
||||
newProperties.set(IdentifiedObject::REMARKS_KEY, l_remarks);
|
||||
|
||||
ObjectUsage::setProperties(newProperties);
|
||||
|
||||
d->extensionProj4_ = extensionProj4;
|
||||
}
|
||||
|
||||
//! @endcond
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
//! @cond Doxygen_Suppress
|
||||
|
||||
CRSNNPtr CRS::normalizeForVisualization() const {
|
||||
|
||||
const auto createProperties = [this](const std::string &newName =
|
||||
@@ -1079,8 +1137,24 @@ CRSNNPtr CRS::promoteTo3D(const std::string &newName,
|
||||
return props;
|
||||
};
|
||||
|
||||
const auto geogCRS = dynamic_cast<const GeographicCRS *>(this);
|
||||
if (geogCRS) {
|
||||
if (auto derivedGeogCRS =
|
||||
dynamic_cast<const DerivedGeographicCRS *>(this)) {
|
||||
const auto &axisList = derivedGeogCRS->coordinateSystem()->axisList();
|
||||
if (axisList.size() == 2) {
|
||||
auto cs = cs::EllipsoidalCS::create(
|
||||
util::PropertyMap(), axisList[0], axisList[1],
|
||||
verticalAxisIfNotAlreadyPresent);
|
||||
auto baseGeog3DCRS = util::nn_dynamic_pointer_cast<GeodeticCRS>(
|
||||
derivedGeogCRS->baseCRS()->promoteTo3D(
|
||||
std::string(), dbContext, verticalAxisIfNotAlreadyPresent));
|
||||
return util::nn_static_pointer_cast<CRS>(
|
||||
DerivedGeographicCRS::create(
|
||||
createProperties(), NN_CHECK_THROW(baseGeog3DCRS),
|
||||
derivedGeogCRS->derivingConversion(), cs));
|
||||
}
|
||||
}
|
||||
|
||||
else if (auto geogCRS = dynamic_cast<const GeographicCRS *>(this)) {
|
||||
const auto &axisList = geogCRS->coordinateSystem()->axisList();
|
||||
if (axisList.size() == 2) {
|
||||
const auto &l_identifiers = identifiers();
|
||||
@@ -1120,8 +1194,7 @@ CRSNNPtr CRS::promoteTo3D(const std::string &newName,
|
||||
}
|
||||
}
|
||||
|
||||
const auto projCRS = dynamic_cast<const ProjectedCRS *>(this);
|
||||
if (projCRS) {
|
||||
else if (auto projCRS = dynamic_cast<const ProjectedCRS *>(this)) {
|
||||
const auto &axisList = projCRS->coordinateSystem()->axisList();
|
||||
if (axisList.size() == 2) {
|
||||
auto base3DCRS =
|
||||
@@ -1137,15 +1210,14 @@ CRSNNPtr CRS::promoteTo3D(const std::string &newName,
|
||||
}
|
||||
}
|
||||
|
||||
const auto boundCRS = dynamic_cast<const BoundCRS *>(this);
|
||||
if (boundCRS) {
|
||||
else if (auto boundCRS = dynamic_cast<const BoundCRS *>(this)) {
|
||||
auto base3DCRS = boundCRS->baseCRS()->promoteTo3D(
|
||||
newName, dbContext, verticalAxisIfNotAlreadyPresent);
|
||||
auto transf = boundCRS->transformation();
|
||||
try {
|
||||
transf->getTOWGS84Parameters();
|
||||
return BoundCRS::create(
|
||||
base3DCRS,
|
||||
createProperties(), base3DCRS,
|
||||
boundCRS->hubCRS()->promoteTo3D(std::string(), dbContext),
|
||||
transf->promoteTo3D(std::string(), dbContext));
|
||||
} catch (const io::FormattingException &) {
|
||||
@@ -1174,18 +1246,21 @@ CRSNNPtr CRS::promoteTo3D(const std::string &newName,
|
||||
*/
|
||||
CRSNNPtr CRS::demoteTo2D(const std::string &newName,
|
||||
const io::DatabaseContextPtr &dbContext) const {
|
||||
const auto geogCRS = dynamic_cast<const GeographicCRS *>(this);
|
||||
if (geogCRS) {
|
||||
|
||||
if (auto derivedGeogCRS =
|
||||
dynamic_cast<const DerivedGeographicCRS *>(this)) {
|
||||
return derivedGeogCRS->demoteTo2D(newName, dbContext);
|
||||
}
|
||||
|
||||
else if (auto geogCRS = dynamic_cast<const GeographicCRS *>(this)) {
|
||||
return geogCRS->demoteTo2D(newName, dbContext);
|
||||
}
|
||||
|
||||
const auto projCRS = dynamic_cast<const ProjectedCRS *>(this);
|
||||
if (projCRS) {
|
||||
else if (auto projCRS = dynamic_cast<const ProjectedCRS *>(this)) {
|
||||
return projCRS->demoteTo2D(newName, dbContext);
|
||||
}
|
||||
|
||||
const auto boundCRS = dynamic_cast<const BoundCRS *>(this);
|
||||
if (boundCRS) {
|
||||
else if (auto boundCRS = dynamic_cast<const BoundCRS *>(this)) {
|
||||
auto base2DCRS = boundCRS->baseCRS()->demoteTo2D(newName, dbContext);
|
||||
auto transf = boundCRS->transformation();
|
||||
try {
|
||||
@@ -1199,8 +1274,7 @@ CRSNNPtr CRS::demoteTo2D(const std::string &newName,
|
||||
}
|
||||
}
|
||||
|
||||
const auto compoundCRS = dynamic_cast<const CompoundCRS *>(this);
|
||||
if (compoundCRS) {
|
||||
else if (auto compoundCRS = dynamic_cast<const CompoundCRS *>(this)) {
|
||||
const auto &components = compoundCRS->componentReferenceSystems();
|
||||
if (components.size() >= 2) {
|
||||
return components[0];
|
||||
@@ -1594,8 +1668,6 @@ GeodeticCRS::create(const util::PropertyMap &properties,
|
||||
GeodeticCRS::nn_make_shared<GeodeticCRS>(datum, datumEnsemble, cs));
|
||||
crs->assignSelf(crs);
|
||||
crs->setProperties(properties);
|
||||
properties.getStringValue("EXTENSION_PROJ4",
|
||||
crs->CRS::getPrivate()->extensionProj4_);
|
||||
|
||||
return crs;
|
||||
}
|
||||
@@ -1641,8 +1713,7 @@ GeodeticCRS::create(const util::PropertyMap &properties,
|
||||
GeodeticCRS::nn_make_shared<GeodeticCRS>(datum, datumEnsemble, cs));
|
||||
crs->assignSelf(crs);
|
||||
crs->setProperties(properties);
|
||||
properties.getStringValue("EXTENSION_PROJ4",
|
||||
crs->CRS::getPrivate()->extensionProj4_);
|
||||
|
||||
return crs;
|
||||
}
|
||||
|
||||
@@ -2558,8 +2629,6 @@ GeographicCRS::create(const util::PropertyMap &properties,
|
||||
GeographicCRS::nn_make_shared<GeographicCRS>(datum, datumEnsemble, cs));
|
||||
crs->assignSelf(crs);
|
||||
crs->setProperties(properties);
|
||||
properties.getStringValue("EXTENSION_PROJ4",
|
||||
crs->CRS::getPrivate()->extensionProj4_);
|
||||
crs->CRS::getPrivate()->setImplicitCS(properties);
|
||||
return crs;
|
||||
}
|
||||
@@ -4033,8 +4102,6 @@ ProjectedCRS::create(const util::PropertyMap &properties,
|
||||
crs->assignSelf(crs);
|
||||
crs->setProperties(properties);
|
||||
crs->setDerivingConversionCRS();
|
||||
properties.getStringValue("EXTENSION_PROJ4",
|
||||
crs->CRS::getPrivate()->extensionProj4_);
|
||||
crs->CRS::getPrivate()->setImplicitCS(properties);
|
||||
return crs;
|
||||
}
|
||||
@@ -5224,6 +5291,37 @@ BoundCRS::transformation() PROJ_PURE_DEFN {
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
/** \brief Instantiate a BoundCRS from a base CRS, a hub CRS and a
|
||||
* transformation.
|
||||
*
|
||||
* @param properties See \ref general_properties.
|
||||
* @param baseCRSIn base CRS.
|
||||
* @param hubCRSIn hub CRS.
|
||||
* @param transformationIn transformation from base CRS to hub CRS.
|
||||
* @return new BoundCRS.
|
||||
* @since PROJ 8.2
|
||||
*/
|
||||
BoundCRSNNPtr
|
||||
BoundCRS::create(const util::PropertyMap &properties, const CRSNNPtr &baseCRSIn,
|
||||
const CRSNNPtr &hubCRSIn,
|
||||
const operation::TransformationNNPtr &transformationIn) {
|
||||
auto crs = BoundCRS::nn_make_shared<BoundCRS>(baseCRSIn, hubCRSIn,
|
||||
transformationIn);
|
||||
crs->assignSelf(crs);
|
||||
const auto &l_name = baseCRSIn->nameStr();
|
||||
if (properties.get(common::IdentifiedObject::NAME_KEY) == nullptr &&
|
||||
!l_name.empty()) {
|
||||
auto newProperties(properties);
|
||||
newProperties.set(common::IdentifiedObject::NAME_KEY, l_name);
|
||||
crs->setProperties(newProperties);
|
||||
} else {
|
||||
crs->setProperties(properties);
|
||||
}
|
||||
return crs;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
/** \brief Instantiate a BoundCRS from a base CRS, a hub CRS and a
|
||||
* transformation.
|
||||
*
|
||||
@@ -5235,15 +5333,7 @@ BoundCRS::transformation() PROJ_PURE_DEFN {
|
||||
BoundCRSNNPtr
|
||||
BoundCRS::create(const CRSNNPtr &baseCRSIn, const CRSNNPtr &hubCRSIn,
|
||||
const operation::TransformationNNPtr &transformationIn) {
|
||||
auto crs = BoundCRS::nn_make_shared<BoundCRS>(baseCRSIn, hubCRSIn,
|
||||
transformationIn);
|
||||
crs->assignSelf(crs);
|
||||
const auto &l_name = baseCRSIn->nameStr();
|
||||
if (!l_name.empty()) {
|
||||
crs->setProperties(util::PropertyMap().set(
|
||||
common::IdentifiedObject::NAME_KEY, l_name));
|
||||
}
|
||||
return crs;
|
||||
return create(util::PropertyMap(), baseCRSIn, hubCRSIn, transformationIn);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
@@ -5348,6 +5438,7 @@ void BoundCRS::_exportToWKT(io::WKTFormatter *formatter) const {
|
||||
formatter->setAbridgedTransformation(true);
|
||||
d->transformation()->_exportToWKT(formatter);
|
||||
formatter->setAbridgedTransformation(false);
|
||||
ObjectUsage::baseExportToWKT(formatter);
|
||||
formatter->endNode();
|
||||
} else {
|
||||
|
||||
@@ -5388,8 +5479,21 @@ void BoundCRS::_exportToJSON(
|
||||
io::JSONFormatter *formatter) const // throw(io::FormattingException)
|
||||
{
|
||||
auto writer = formatter->writer();
|
||||
auto objectContext(
|
||||
formatter->MakeObjectContext("BoundCRS", !identifiers().empty()));
|
||||
const auto &l_name = nameStr();
|
||||
if ((formatter->outputUsage(true) && !domains().empty()) ||
|
||||
(formatter->outputId() && !identifiers().empty()) ||
|
||||
!remarks().empty() ||
|
||||
(!l_name.empty() && l_name != d->baseCRS()->nameStr())) {
|
||||
// Only upgrades to v0.3 schema if needed
|
||||
formatter->setSchema(io::JSONFormatter::PROJJSON_v0_3);
|
||||
}
|
||||
|
||||
auto objectContext(formatter->MakeObjectContext("BoundCRS", false));
|
||||
|
||||
if (!l_name.empty() && l_name != d->baseCRS()->nameStr()) {
|
||||
writer->AddObjKey("name");
|
||||
writer->Add(l_name);
|
||||
}
|
||||
|
||||
writer->AddObjKey("source_crs");
|
||||
d->baseCRS()->_exportToJSON(formatter);
|
||||
@@ -5402,6 +5506,8 @@ void BoundCRS::_exportToJSON(
|
||||
formatter->setAbridgedTransformation(true);
|
||||
d->transformation()->_exportToJSON(formatter);
|
||||
formatter->setAbridgedTransformation(false);
|
||||
|
||||
ObjectUsage::baseExportToJSON(formatter);
|
||||
}
|
||||
//! @endcond
|
||||
|
||||
@@ -5898,6 +6004,38 @@ bool DerivedGeographicCRS::_isEquivalentTo(
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
/** \brief Return a variant of this CRS "demoted" to a 2D one, if not already
|
||||
* the case.
|
||||
*
|
||||
*
|
||||
* @param newName Name of the new CRS. If empty, nameStr() will be used.
|
||||
* @param dbContext Database context to look for potentially already registered
|
||||
* 2D CRS. May be nullptr.
|
||||
* @return a new CRS demoted to 2D, or the current one if already 2D or not
|
||||
* applicable.
|
||||
* @since 8.1.1
|
||||
*/
|
||||
DerivedGeographicCRSNNPtr DerivedGeographicCRS::demoteTo2D(
|
||||
const std::string &newName, const io::DatabaseContextPtr &dbContext) const {
|
||||
|
||||
const auto &axisList = coordinateSystem()->axisList();
|
||||
if (axisList.size() == 3) {
|
||||
auto cs = cs::EllipsoidalCS::create(util::PropertyMap(), axisList[0],
|
||||
axisList[1]);
|
||||
auto baseGeog2DCRS = util::nn_dynamic_pointer_cast<GeodeticCRS>(
|
||||
baseCRS()->demoteTo2D(std::string(), dbContext));
|
||||
return DerivedGeographicCRS::create(
|
||||
util::PropertyMap().set(common::IdentifiedObject::NAME_KEY,
|
||||
!newName.empty() ? newName : nameStr()),
|
||||
NN_CHECK_THROW(baseGeog2DCRS), derivingConversion(), cs);
|
||||
}
|
||||
|
||||
return NN_NO_CHECK(std::dynamic_pointer_cast<DerivedGeographicCRS>(
|
||||
shared_from_this().as_nullable()));
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
//! @cond Doxygen_Suppress
|
||||
|
||||
std::list<std::pair<CRSNNPtr, int>>
|
||||
|
||||
@@ -1145,9 +1145,8 @@ std::vector<std::string> DatabaseContext::Private::getDatabaseStructure() {
|
||||
: "db_0.");
|
||||
const auto sqlBegin("SELECT sql||';' FROM " + dbNamePrefix +
|
||||
"sqlite_master WHERE type = ");
|
||||
const char *const objectTypes[] = {"'table' AND "
|
||||
"name NOT LIKE 'sqlite_stat%'",
|
||||
"'view'", "'trigger'"};
|
||||
const char *tableType = "'table' AND name NOT LIKE 'sqlite_stat%'";
|
||||
const char *const objectTypes[] = {tableType, "'view'", "'trigger'"};
|
||||
std::vector<std::string> res;
|
||||
for (const auto &objectType : objectTypes) {
|
||||
const auto sqlRes = run(sqlBegin + objectType);
|
||||
|
||||
+39
-17
@@ -89,10 +89,6 @@ using json = nlohmann::json;
|
||||
|
||||
//! @cond Doxygen_Suppress
|
||||
static const std::string emptyString{};
|
||||
|
||||
// If changing that value, change it in data/projjson.schema.json as well
|
||||
#define PROJJSON_CURRENT_VERSION \
|
||||
"https://proj.org/schemas/v0.2/projjson.schema.json"
|
||||
//! @endcond
|
||||
|
||||
#if 0
|
||||
@@ -109,6 +105,18 @@ template<> nn<std::unique_ptr<NS_PROJ::io::WKTNode, std::default_delete<NS_PROJ:
|
||||
NS_PROJ_START
|
||||
namespace io {
|
||||
|
||||
//! @cond Doxygen_Suppress
|
||||
const char *JSONFormatter::PROJJSON_v0_2 =
|
||||
"https://proj.org/schemas/v0.2/projjson.schema.json";
|
||||
|
||||
const char *JSONFormatter::PROJJSON_v0_3 =
|
||||
"https://proj.org/schemas/v0.3/projjson.schema.json";
|
||||
|
||||
// v0.2 is our base version. We only upgrade to 0.3 for usage node in BoundCRS
|
||||
#define PROJJSON_DEFAULT_VERSION JSONFormatter::PROJJSON_v0_2
|
||||
|
||||
//! @endcond
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
//! @cond Doxygen_Suppress
|
||||
@@ -4593,8 +4601,8 @@ BoundCRSNNPtr WKTParser::Private::buildBoundCRS(const WKTNodeNNPtr &node) {
|
||||
NN_NO_CHECK(targetCRS), nullptr, buildProperties(methodNode),
|
||||
parameters, values, std::vector<PositionalAccuracyNNPtr>());
|
||||
|
||||
return BoundCRS::create(NN_NO_CHECK(sourceCRS), NN_NO_CHECK(targetCRS),
|
||||
transformation);
|
||||
return BoundCRS::create(buildProperties(node), NN_NO_CHECK(sourceCRS),
|
||||
NN_NO_CHECK(targetCRS), transformation);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
@@ -5057,7 +5065,8 @@ class JSONParser {
|
||||
|
||||
IdentifierNNPtr buildId(const json &j, bool removeInverseOf);
|
||||
static ObjectDomainPtr buildObjectDomain(const json &j);
|
||||
PropertyMap buildProperties(const json &j, bool removeInverseOf = false);
|
||||
PropertyMap buildProperties(const json &j, bool removeInverseOf = false,
|
||||
bool nameRequired = true);
|
||||
|
||||
GeographicCRSNNPtr buildGeographicCRS(const json &j);
|
||||
GeodeticCRSNNPtr buildGeodeticCRS(const json &j);
|
||||
@@ -5358,13 +5367,17 @@ IdentifierNNPtr JSONParser::buildId(const json &j, bool removeInverseOf) {
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
PropertyMap JSONParser::buildProperties(const json &j, bool removeInverseOf) {
|
||||
PropertyMap JSONParser::buildProperties(const json &j, bool removeInverseOf,
|
||||
bool nameRequired) {
|
||||
PropertyMap map;
|
||||
std::string name(getName(j));
|
||||
if (removeInverseOf && starts_with(name, "Inverse of ")) {
|
||||
name = name.substr(strlen("Inverse of "));
|
||||
|
||||
if (j.contains("name") || nameRequired) {
|
||||
std::string name(getName(j));
|
||||
if (removeInverseOf && starts_with(name, "Inverse of ")) {
|
||||
name = name.substr(strlen("Inverse of "));
|
||||
}
|
||||
map.set(IdentifiedObject::NAME_KEY, name);
|
||||
}
|
||||
map.set(IdentifiedObject::NAME_KEY, name);
|
||||
|
||||
if (j.contains("ids")) {
|
||||
auto idsJ = getArray(j, "ids");
|
||||
@@ -5782,7 +5795,10 @@ BoundCRSNNPtr JSONParser::buildBoundCRS(const json &j) {
|
||||
nullptr, buildProperties(methodJ), parameters, values,
|
||||
std::vector<PositionalAccuracyNNPtr>());
|
||||
|
||||
return BoundCRS::create(sourceCRS, targetCRS, transformation);
|
||||
return BoundCRS::create(buildProperties(j,
|
||||
/* removeInverseOf= */ false,
|
||||
/* nameRequired=*/false),
|
||||
sourceCRS, targetCRS, transformation);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
@@ -7409,6 +7425,8 @@ const std::string &PROJStringFormatter::toString() const {
|
||||
} else if (step.name == "pop" && step.inverted) {
|
||||
step.name = "push";
|
||||
step.inverted = false;
|
||||
} else if (step.name == "noop" && d->steps_.size() > 1) {
|
||||
iter = d->steps_.erase(iter);
|
||||
} else {
|
||||
++iter;
|
||||
}
|
||||
@@ -10529,7 +10547,7 @@ struct JSONFormatter::Private {
|
||||
bool allowIDInImmediateChild_ = false;
|
||||
bool omitTypeInImmediateChild_ = false;
|
||||
bool abridgedTransformation_ = false;
|
||||
std::string schema_ = PROJJSON_CURRENT_VERSION;
|
||||
std::string schema_ = PROJJSON_DEFAULT_VERSION;
|
||||
|
||||
std::string result_{};
|
||||
|
||||
@@ -10580,7 +10598,10 @@ JSONFormatter &JSONFormatter::setIndentationWidth(int width) noexcept {
|
||||
* If set to empty string, it will not be written.
|
||||
*/
|
||||
JSONFormatter &JSONFormatter::setSchema(const std::string &schema) noexcept {
|
||||
d->schema_ = schema;
|
||||
// Upgrade only to v0.3 if the default was v0.2
|
||||
if (schema != PROJJSON_v0_3 || d->schema_ == PROJJSON_v0_2) {
|
||||
d->schema_ = schema;
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -10604,8 +10625,9 @@ bool JSONFormatter::outputId() const { return d->outputIdStack_.back(); }
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
bool JSONFormatter::outputUsage() const {
|
||||
return outputId() && d->outputIdStack_.size() == 2;
|
||||
bool JSONFormatter::outputUsage(bool calledBeforeObjectContext) const {
|
||||
return outputId() &&
|
||||
d->outputIdStack_.size() == (calledBeforeObjectContext ? 1U : 2U);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
@@ -335,13 +335,26 @@ void ConcatenatedOperation::fixStepsDirection(
|
||||
}
|
||||
}
|
||||
} else if (conv && i > 0 && i < operationsInOut.size() - 1) {
|
||||
// For an intermediate conversion, use the target CRS of the
|
||||
// previous step and the source CRS of the next step
|
||||
|
||||
l_sourceCRS = operationsInOut[i - 1]->targetCRS();
|
||||
l_targetCRS = operationsInOut[i + 1]->sourceCRS();
|
||||
// For an intermediate conversion, use the target CRS of the
|
||||
// previous step and the source CRS of the next step
|
||||
if (l_sourceCRS && l_targetCRS) {
|
||||
op->setCRSs(NN_NO_CHECK(l_sourceCRS), NN_NO_CHECK(l_targetCRS),
|
||||
nullptr);
|
||||
// If the sourceCRS is a projectedCRS and the target a
|
||||
// geographic one, then we must inverse the operation. See
|
||||
// https://github.com/OSGeo/PROJ/issues/2817
|
||||
if (dynamic_cast<const crs::ProjectedCRS *>(
|
||||
l_sourceCRS.get()) &&
|
||||
dynamic_cast<const crs::GeographicCRS *>(
|
||||
l_targetCRS.get())) {
|
||||
op->setCRSs(NN_NO_CHECK(l_targetCRS),
|
||||
NN_NO_CHECK(l_sourceCRS), nullptr);
|
||||
op = op->inverse();
|
||||
} else {
|
||||
op->setCRSs(NN_NO_CHECK(l_sourceCRS),
|
||||
NN_NO_CHECK(l_targetCRS), nullptr);
|
||||
}
|
||||
} else if (l_sourceCRS && l_targetCRS == nullptr &&
|
||||
conv->method()->getEPSGCode() ==
|
||||
EPSG_CODE_METHOD_HEIGHT_DEPTH_REVERSAL) {
|
||||
@@ -380,6 +393,11 @@ void ConcatenatedOperation::fixStepsDirection(
|
||||
// whereas we should instead use the reverse path.
|
||||
auto prevOpTarget = (i == 0) ? concatOpSourceCRS.as_nullable()
|
||||
: operationsInOut[i - 1]->targetCRS();
|
||||
if (prevOpTarget == nullptr) {
|
||||
throw InvalidOperation(
|
||||
"Cannot determine targetCRS of operation at step " +
|
||||
toString(static_cast<int>(i)));
|
||||
}
|
||||
if (compareStepCRS(l_sourceCRS.get(), prevOpTarget.get())) {
|
||||
// do nothing
|
||||
} else if (compareStepCRS(l_targetCRS.get(), prevOpTarget.get())) {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3121,7 +3121,8 @@ void CoordinateOperationFactory::Private::createOperationsFromProj4Ext(
|
||||
projFormatter->setLegacyCRSToCRSContext(true);
|
||||
projFormatter->startInversion();
|
||||
sourceProjExportable->_exportToPROJString(projFormatter.get());
|
||||
auto geogSrc = dynamic_cast<const crs::GeographicCRS *>(sourceCRS.get());
|
||||
auto geogSrc = dynamic_cast<const crs::GeographicCRS *>(
|
||||
boundSrc ? boundSrc->baseCRS().get() : sourceCRS.get());
|
||||
if (geogSrc) {
|
||||
auto tmpFormatter = io::PROJStringFormatter::create();
|
||||
geogSrc->addAngularUnitConvertAndAxisSwap(tmpFormatter.get());
|
||||
@@ -3131,7 +3132,8 @@ void CoordinateOperationFactory::Private::createOperationsFromProj4Ext(
|
||||
projFormatter->stopInversion();
|
||||
|
||||
targetProjExportable->_exportToPROJString(projFormatter.get());
|
||||
auto geogDst = dynamic_cast<const crs::GeographicCRS *>(targetCRS.get());
|
||||
auto geogDst = dynamic_cast<const crs::GeographicCRS *>(
|
||||
boundDst ? boundDst->baseCRS().get() : targetCRS.get());
|
||||
if (geogDst) {
|
||||
auto tmpFormatter = io::PROJStringFormatter::create();
|
||||
geogDst->addAngularUnitConvertAndAxisSwap(tmpFormatter.get());
|
||||
@@ -3476,7 +3478,7 @@ CoordinateOperationFactory::Private::createOperationsGeogToVertFromGeoid(
|
||||
vertDst->datum(), vertDst->datumEnsemble(),
|
||||
cs::VerticalCS::createGravityRelatedHeight(
|
||||
common::UnitOfMeasure::METRE)));
|
||||
const auto properties = util::PropertyMap().set(
|
||||
auto properties = util::PropertyMap().set(
|
||||
common::IdentifiedObject::NAME_KEY,
|
||||
buildOpName("Transformation", vertCRSMetre, geogSrcCRS));
|
||||
|
||||
@@ -3485,14 +3487,21 @@ CoordinateOperationFactory::Private::createOperationsGeogToVertFromGeoid(
|
||||
std::vector<metadata::PositionalAccuracyNNPtr> accuracies;
|
||||
const auto &modelAccuracies =
|
||||
model->coordinateOperationAccuracies();
|
||||
std::vector<CoordinateOperationNNPtr> transformationsForGrid;
|
||||
double accuracy = -1;
|
||||
size_t idx = static_cast<size_t>(-1);
|
||||
if (modelAccuracies.empty()) {
|
||||
if (authFactory) {
|
||||
const auto transformationsForGrid =
|
||||
transformationsForGrid =
|
||||
io::DatabaseContext::getTransformationsForGridName(
|
||||
authFactory->databaseContext(), projFilename);
|
||||
double accuracy = -1;
|
||||
for (const auto &transf : transformationsForGrid) {
|
||||
accuracy = std::max(accuracy, getAccuracy(transf));
|
||||
for (size_t i = 0; i < transformationsForGrid.size(); ++i) {
|
||||
const auto &transf = transformationsForGrid[i];
|
||||
const double transfAcc = getAccuracy(transf);
|
||||
if (transfAcc - accuracy > 1e-10) {
|
||||
accuracy = transfAcc;
|
||||
idx = i;
|
||||
}
|
||||
}
|
||||
if (accuracy >= 0) {
|
||||
accuracies.emplace_back(
|
||||
@@ -3502,6 +3511,31 @@ CoordinateOperationFactory::Private::createOperationsGeogToVertFromGeoid(
|
||||
}
|
||||
}
|
||||
|
||||
// Set extent
|
||||
bool dummy = false;
|
||||
// Use in priority the one of the geoid model transformation
|
||||
auto extent = getExtent(model, true, dummy);
|
||||
// Otherwise fallback to the extent of a transformation using
|
||||
// the grid.
|
||||
if (extent == nullptr && authFactory != nullptr) {
|
||||
if (transformationsForGrid.empty()) {
|
||||
transformationsForGrid =
|
||||
io::DatabaseContext::getTransformationsForGridName(
|
||||
authFactory->databaseContext(), projFilename);
|
||||
}
|
||||
if (idx != static_cast<size_t>(-1)) {
|
||||
const auto &transf = transformationsForGrid[idx];
|
||||
extent = getExtent(transf, true, dummy);
|
||||
} else if (!transformationsForGrid.empty()) {
|
||||
const auto &transf = transformationsForGrid.front();
|
||||
extent = getExtent(transf, true, dummy);
|
||||
}
|
||||
}
|
||||
if (extent) {
|
||||
properties.set(common::ObjectUsage::DOMAIN_OF_VALIDITY_KEY,
|
||||
NN_NO_CHECK(extent));
|
||||
}
|
||||
|
||||
return Transformation::createGravityRelatedHeightToGeographic3D(
|
||||
properties, vertCRSMetre, geogSrcCRS, nullptr, projFilename,
|
||||
!modelAccuracies.empty() ? modelAccuracies : accuracies);
|
||||
@@ -5314,6 +5348,12 @@ CoordinateOperationFactory::createOperations(
|
||||
metadata::ExtentPtr targetCRSExtent;
|
||||
auto l_resolvedTargetCRS =
|
||||
crs::CRS::getResolvedCRS(l_targetCRS, authFactory, targetCRSExtent);
|
||||
if (context->getSourceAndTargetCRSExtentUse() ==
|
||||
CoordinateOperationContext::SourceTargetCRSExtentUse::NONE) {
|
||||
// Make sure *not* to use CRS extent if requested to ignore it
|
||||
sourceCRSExtent.reset();
|
||||
targetCRSExtent.reset();
|
||||
}
|
||||
Private::Context contextPrivate(sourceCRSExtent, targetCRSExtent, context);
|
||||
|
||||
if (context->getSourceAndTargetCRSExtentUse() ==
|
||||
|
||||
@@ -730,8 +730,9 @@ static TransformationNNPtr createFifteenParamsTransform(
|
||||
* the sign of
|
||||
* the rotation terms is inverted.
|
||||
*
|
||||
* This method is defined as [EPSG:1053]
|
||||
* (https://www.epsg-registry.org/export.htm?gml=urn:ogc:def:method:EPSG::1053)
|
||||
* This method is defined as
|
||||
* <a href="https://epsg.org/coord-operation-method_1053/index.html">
|
||||
* EPSG:1053</a>.
|
||||
*
|
||||
* @param properties See \ref general_properties of the Transformation.
|
||||
* At minimum the name should be defined.
|
||||
@@ -806,8 +807,9 @@ TransformationNNPtr Transformation::createTimeDependentPositionVector(
|
||||
* of
|
||||
* the rotation terms is inverted.
|
||||
*
|
||||
* This method is defined as [EPSG:1056]
|
||||
* (https://www.epsg-registry.org/export.htm?gml=urn:ogc:def:method:EPSG::1056)
|
||||
* This method is defined as
|
||||
* <a href="https://epsg.org/coord-operation-method_1056/index.html">
|
||||
* EPSG:1056</a>.
|
||||
*
|
||||
* @param properties See \ref general_properties of the Transformation.
|
||||
* At minimum the name should be defined.
|
||||
@@ -913,8 +915,9 @@ static TransformationNNPtr _createMolodensky(
|
||||
*
|
||||
* @see createAbridgedMolodensky() for a related method.
|
||||
*
|
||||
* This method is defined as [EPSG:9604]
|
||||
* (https://www.epsg-registry.org/export.htm?gml=urn:ogc:def:method:EPSG::9604)
|
||||
* This method is defined as
|
||||
* <a href="https://epsg.org/coord-operation-method_9604/index.html">
|
||||
* EPSG:9604</a>.
|
||||
*
|
||||
* @param properties See \ref general_properties of the Transformation.
|
||||
* At minimum the name should be defined.
|
||||
@@ -949,8 +952,9 @@ TransformationNNPtr Transformation::createMolodensky(
|
||||
*
|
||||
* @see createdMolodensky() for a related method.
|
||||
*
|
||||
* This method is defined as [EPSG:9605]
|
||||
* (https://www.epsg-registry.org/export.htm?gml=urn:ogc:def:method:EPSG::9605)
|
||||
* This method is defined as
|
||||
* <a href="https://epsg.org/coord-operation-method_9605/index.html">
|
||||
* EPSG:9605</a>.
|
||||
*
|
||||
* @param properties See \ref general_properties of the Transformation.
|
||||
* At minimum the name should be defined.
|
||||
@@ -1144,9 +1148,10 @@ buildAccuracyZero() {
|
||||
|
||||
/** \brief Instantiate a transformation with method Longitude rotation
|
||||
*
|
||||
* This method is defined as [EPSG:9601]
|
||||
* (https://www.epsg-registry.org/export.htm?gml=urn:ogc:def:method:EPSG::9601)
|
||||
* *
|
||||
* This method is defined as
|
||||
* <a href="https://epsg.org/coord-operation-method_9601/index.html">
|
||||
* EPSG:9601</a>.
|
||||
*
|
||||
* @param properties See \ref general_properties of the Transformation.
|
||||
* At minimum the name should be defined.
|
||||
* @param sourceCRSIn Source CRS.
|
||||
@@ -1179,9 +1184,10 @@ bool Transformation::isLongitudeRotation() const {
|
||||
|
||||
/** \brief Instantiate a transformation with method Geographic 2D offsets
|
||||
*
|
||||
* This method is defined as [EPSG:9619]
|
||||
* (https://www.epsg-registry.org/export.htm?gml=urn:ogc:def:method:EPSG::9619)
|
||||
* *
|
||||
* This method is defined as
|
||||
* <a href="https://epsg.org/coord-operation-method_9619/index.html">
|
||||
* EPSG:9619</a>.
|
||||
*
|
||||
* @param properties See \ref general_properties of the Transformation.
|
||||
* At minimum the name should be defined.
|
||||
* @param sourceCRSIn Source CRS.
|
||||
@@ -1209,9 +1215,10 @@ TransformationNNPtr Transformation::createGeographic2DOffsets(
|
||||
|
||||
/** \brief Instantiate a transformation with method Geographic 3D offsets
|
||||
*
|
||||
* This method is defined as [EPSG:9660]
|
||||
* (https://www.epsg-registry.org/export.htm?gml=urn:ogc:def:method:EPSG::9660)
|
||||
* *
|
||||
* This method is defined as
|
||||
* <a href="https://epsg.org/coord-operation-method_9660/index.html">
|
||||
* EPSG:9660</a>.
|
||||
*
|
||||
* @param properties See \ref general_properties of the Transformation.
|
||||
* At minimum the name should be defined.
|
||||
* @param sourceCRSIn Source CRS.
|
||||
@@ -1243,9 +1250,10 @@ TransformationNNPtr Transformation::createGeographic3DOffsets(
|
||||
* height
|
||||
* offsets
|
||||
*
|
||||
* This method is defined as [EPSG:9618]
|
||||
* (https://www.epsg-registry.org/export.htm?gml=urn:ogc:def:method:EPSG::9618)
|
||||
* *
|
||||
* This method is defined as
|
||||
* <a href="https://epsg.org/coord-operation-method_9618/index.html">
|
||||
* EPSG:9618</a>.
|
||||
*
|
||||
* @param properties See \ref general_properties of the Transformation.
|
||||
* At minimum the name should be defined.
|
||||
* @param sourceCRSIn Source CRS.
|
||||
@@ -1276,9 +1284,10 @@ TransformationNNPtr Transformation::createGeographic2DWithHeightOffsets(
|
||||
|
||||
/** \brief Instantiate a transformation with method Vertical Offset.
|
||||
*
|
||||
* This method is defined as [EPSG:9616]
|
||||
* (https://www.epsg-registry.org/export.htm?gml=urn:ogc:def:method:EPSG::9616)
|
||||
* *
|
||||
* This method is defined as
|
||||
* <a href="https://epsg.org/coord-operation-method_9616/index.html">
|
||||
* EPSG:9616</a>.
|
||||
*
|
||||
* @param properties See \ref general_properties of the Transformation.
|
||||
* At minimum the name should be defined.
|
||||
* @param sourceCRSIn Source CRS.
|
||||
@@ -1303,8 +1312,9 @@ TransformationNNPtr Transformation::createVerticalOffset(
|
||||
/** \brief Instantiate a transformation based on the Change of Vertical Unit
|
||||
* method.
|
||||
*
|
||||
* This method is defined as [EPSG:1069]
|
||||
* (https://www.epsg-registry.org/export.htm?gml=urn:ogc:def:method:EPSG::1069)
|
||||
* This method is defined as
|
||||
* <a href="https://epsg.org/coord-operation-method_1069/index.html">
|
||||
* EPSG:1069</a> [DEPRECATED].
|
||||
*
|
||||
* @param properties See \ref general_properties of the conversion. If the name
|
||||
* is not provided, it is automatically set.
|
||||
|
||||
+2
-1
@@ -398,7 +398,8 @@ target_link_libraries(proj PRIVATE ${SQLITE3_LIBRARY})
|
||||
|
||||
if(NLOHMANN_JSON STREQUAL "external")
|
||||
target_compile_definitions(proj PRIVATE EXTERNAL_NLOHMANN_JSON)
|
||||
target_link_libraries(proj PRIVATE nlohmann_json::nlohmann_json)
|
||||
target_link_libraries(proj
|
||||
PRIVATE $<BUILD_INTERFACE:nlohmann_json::nlohmann_json>)
|
||||
endif()
|
||||
|
||||
if(TIFF_ENABLED)
|
||||
|
||||
+31
-25
@@ -46,25 +46,36 @@ void pj_stderr_logger( void *app_data, int level, const char *msg )
|
||||
}
|
||||
|
||||
/************************************************************************/
|
||||
/* pj_vlog() */
|
||||
/* pj_log_active() */
|
||||
/************************************************************************/
|
||||
void pj_vlog( PJ_CONTEXT *ctx, int level, const char *fmt, va_list args );
|
||||
|
||||
void pj_vlog( PJ_CONTEXT *ctx, int level, const char *fmt, va_list args )
|
||||
|
||||
bool pj_log_active( PJ_CONTEXT *ctx, int level )
|
||||
{
|
||||
char *msg_buf;
|
||||
int debug_level = ctx->debug_level;
|
||||
int shutup_unless_errno_set = debug_level < 0;
|
||||
|
||||
/* For negative debug levels, we first start logging when errno is set */
|
||||
if (ctx->last_errno==0 && shutup_unless_errno_set)
|
||||
return;
|
||||
return false;
|
||||
|
||||
if (debug_level < 0)
|
||||
debug_level = -debug_level;
|
||||
|
||||
if( level > debug_level )
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/************************************************************************/
|
||||
/* pj_vlog() */
|
||||
/************************************************************************/
|
||||
|
||||
static
|
||||
void pj_vlog( PJ_CONTEXT *ctx, int level, const PJ* P, const char *fmt, va_list args )
|
||||
|
||||
{
|
||||
char *msg_buf;
|
||||
if( !pj_log_active(ctx, level) )
|
||||
return;
|
||||
|
||||
constexpr size_t BUF_SIZE = 100000;
|
||||
@@ -72,7 +83,15 @@ void pj_vlog( PJ_CONTEXT *ctx, int level, const char *fmt, va_list args )
|
||||
if( msg_buf == nullptr )
|
||||
return;
|
||||
|
||||
vsnprintf( msg_buf, BUF_SIZE, fmt, args );
|
||||
if( P == nullptr || P->short_name == nullptr )
|
||||
vsnprintf( msg_buf, BUF_SIZE, fmt, args );
|
||||
else
|
||||
{
|
||||
std::string fmt_with_P_short_name(P->short_name);
|
||||
fmt_with_P_short_name += ": ";
|
||||
fmt_with_P_short_name += fmt;
|
||||
vsnprintf( msg_buf, BUF_SIZE, fmt_with_P_short_name.c_str(), args );
|
||||
}
|
||||
msg_buf[BUF_SIZE-1] = '\0';
|
||||
|
||||
ctx->logger( ctx->logger_app_data, level, msg_buf );
|
||||
@@ -80,7 +99,6 @@ void pj_vlog( PJ_CONTEXT *ctx, int level, const char *fmt, va_list args )
|
||||
free( msg_buf );
|
||||
}
|
||||
|
||||
|
||||
/************************************************************************/
|
||||
/* pj_log() */
|
||||
/************************************************************************/
|
||||
@@ -94,7 +112,7 @@ void pj_log( PJ_CONTEXT *ctx, int level, const char *fmt, ... )
|
||||
return;
|
||||
|
||||
va_start( args, fmt );
|
||||
pj_vlog( ctx, level, fmt, args );
|
||||
pj_vlog( ctx, level, nullptr, fmt, args );
|
||||
va_end( args );
|
||||
}
|
||||
|
||||
@@ -117,18 +135,6 @@ PJ_LOG_LEVEL proj_log_level (PJ_CONTEXT *ctx, PJ_LOG_LEVEL log_level) {
|
||||
return previous;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
static std::string add_short_name_prefix(const PJ* P, const char* fmt)
|
||||
/*****************************************************************************/
|
||||
{
|
||||
if( P->short_name == nullptr )
|
||||
return fmt;
|
||||
std::string ret(P->short_name);
|
||||
ret += ": ";
|
||||
ret += fmt;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
void proj_log_error (const PJ *P, const char *fmt, ...) {
|
||||
/******************************************************************************
|
||||
@@ -136,7 +142,7 @@ void proj_log_error (const PJ *P, const char *fmt, ...) {
|
||||
******************************************************************************/
|
||||
va_list args;
|
||||
va_start( args, fmt );
|
||||
pj_vlog (pj_get_ctx ((PJ*)P), PJ_LOG_ERROR , add_short_name_prefix(P, fmt).c_str(), args);
|
||||
pj_vlog (pj_get_ctx ((PJ*)P), PJ_LOG_ERROR, P, fmt, args);
|
||||
va_end( args );
|
||||
}
|
||||
|
||||
@@ -148,7 +154,7 @@ void proj_log_debug (PJ *P, const char *fmt, ...) {
|
||||
******************************************************************************/
|
||||
va_list args;
|
||||
va_start( args, fmt );
|
||||
pj_vlog (pj_get_ctx (P), PJ_LOG_DEBUG , add_short_name_prefix(P, fmt).c_str(), args);
|
||||
pj_vlog (pj_get_ctx (P), PJ_LOG_DEBUG, P, fmt, args);
|
||||
va_end( args );
|
||||
}
|
||||
|
||||
@@ -159,7 +165,7 @@ void proj_context_log_debug (PJ_CONTEXT *ctx, const char *fmt, ...) {
|
||||
******************************************************************************/
|
||||
va_list args;
|
||||
va_start( args, fmt );
|
||||
pj_vlog (ctx, PJ_LOG_DEBUG , fmt, args);
|
||||
pj_vlog (ctx, PJ_LOG_DEBUG, nullptr, fmt, args);
|
||||
va_end( args );
|
||||
}
|
||||
|
||||
@@ -170,7 +176,7 @@ void proj_log_trace (PJ *P, const char *fmt, ...) {
|
||||
******************************************************************************/
|
||||
va_list args;
|
||||
va_start( args, fmt );
|
||||
pj_vlog (pj_get_ctx (P), PJ_LOG_TRACE , add_short_name_prefix(P, fmt).c_str(), args);
|
||||
pj_vlog (pj_get_ctx (P), PJ_LOG_TRACE, P, fmt, args);
|
||||
va_end( args );
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -172,7 +172,7 @@ extern "C" {
|
||||
/* The version numbers should be updated with every release! **/
|
||||
#define PROJ_VERSION_MAJOR 8
|
||||
#define PROJ_VERSION_MINOR 1
|
||||
#define PROJ_VERSION_PATCH 0
|
||||
#define PROJ_VERSION_PATCH 1
|
||||
|
||||
/* Note: the following 3 defines have been introduced in PROJ 8.0.1 */
|
||||
/* Macro to compute a PROJ version number from its components */
|
||||
@@ -559,7 +559,7 @@ PJ PROJ_DLL *proj_create_crs_to_crs_from_pj(PJ_CONTEXT *ctx,
|
||||
const PJ *target_crs,
|
||||
PJ_AREA *area,
|
||||
const char* const *options);
|
||||
/*! @endcond Doxygen_Suppress */
|
||||
/*! @endcond */
|
||||
PJ PROJ_DLL *proj_normalize_for_visualization(PJ_CONTEXT *ctx, const PJ* obj);
|
||||
/*! @cond Doxygen_Suppress */
|
||||
void PROJ_DLL proj_assign_context(PJ* pj, PJ_CONTEXT* ctx);
|
||||
|
||||
@@ -918,6 +918,7 @@ void pj_acquire_lock(void);
|
||||
void pj_release_lock(void);
|
||||
void pj_cleanup_lock(void);
|
||||
|
||||
bool pj_log_active( PJ_CONTEXT *ctx, int level );
|
||||
void pj_log( PJ_CONTEXT * ctx, int level, const char *fmt, ... );
|
||||
void pj_stderr_logger( void *, int, const char * );
|
||||
|
||||
|
||||
@@ -71,6 +71,7 @@
|
||||
#define pj_is_latlong internal_pj_is_latlong
|
||||
#define pj_latlong_from_proj internal_pj_latlong_from_proj
|
||||
#define pj_log internal_pj_log
|
||||
#define pj_log_active internal_pj_log_active
|
||||
#define pj_malloc internal_pj_malloc
|
||||
#define pj_open_lib internal_pj_open_lib
|
||||
#define pj_pr_list internal_pj_pr_list
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user