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 |
No files matched your search
@@ -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);
|
||||
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -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
|
||||
|
||||
Loaded 100 of 113 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user