提交 ad21d9187bd710a856d27b6a05bb02f0f09a35a5

作者 qingxiongf
1 个父辈 b6ba294f

坐标转换

@@ -70,6 +70,7 @@ @@ -70,6 +70,7 @@
70 "typeindex": "cpp", 70 "typeindex": "cpp",
71 "typeinfo": "cpp", 71 "typeinfo": "cpp",
72 "variant": "cpp", 72 "variant": "cpp",
73 - "cfenv": "cpp" 73 + "cfenv": "cpp",
  74 + "unordered_set": "cpp"
74 } 75 }
75 } 76 }
@@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
2 find_package(Boost 1.75 REQUIRED COMPONENTS log_setup) 2 find_package(Boost 1.75 REQUIRED COMPONENTS log_setup)
3 find_package(Boost 1.75 REQUIRED COMPONENTS log) 3 find_package(Boost 1.75 REQUIRED COMPONENTS log)
4 link_libraries("cairo") 4 link_libraries("cairo")
  5 +link_libraries("/usr/local/lib/libgdal.so")
5 ############################################################ 6 ############################################################
6 # sources 7 # sources
7 8
@@ -14,6 +15,7 @@ SET(DMAP_CORE_SRCS @@ -14,6 +15,7 @@ SET(DMAP_CORE_SRCS
14 symbology/dmpsymbol.cpp 15 symbology/dmpsymbol.cpp
15 dmpapplication.cpp 16 dmpapplication.cpp
16 dmpcoordinatereferencesystem.cpp 17 dmpcoordinatereferencesystem.cpp
  18 + dmpcoordinatetransformation.cpp
17 dmpdataprovider.cpp 19 dmpdataprovider.cpp
18 dmplogger.cpp 20 dmplogger.cpp
19 dmpmaplayer.cpp 21 dmpmaplayer.cpp
@@ -65,6 +67,7 @@ SET(DMAP_CORE_HDRS @@ -65,6 +67,7 @@ SET(DMAP_CORE_HDRS
65 symbology/dmpsymbol.h 67 symbology/dmpsymbol.h
66 dmpapplication.h 68 dmpapplication.h
67 dmpcoordinatereferencesystem.h 69 dmpcoordinatereferencesystem.h
  70 + dmpcoordinatetransformation.h
68 dmpdataprovider.h 71 dmpdataprovider.h
69 dmpfeature.h 72 dmpfeature.h
70 dmplogger.h 73 dmplogger.h
  1 +/**************************************************************************
  2 +* file: dmpcoordinatetransformation.cpp
  3 +
  4 +* Author: qingxiongf
  5 +* Date: 2022-03-11 10:53:53
  6 +* Email: qingxiongf@chinadci.com
  7 +* copyright: 广州城市信息研究所有限公司
  8 +***************************************************************************/
  9 +#include "dmpcoordinatetransformation.h"
  10 +
  11 +DmpCoordinateTransformation::DmpCoordinateTransformation(string srsSource, string srsTarget)
  12 +{
  13 + this->srsSource_ = srsSource;
  14 + this->srsTarget_ = srsTarget;
  15 +
  16 + int sridSource = atoi(srsSource.c_str());
  17 + int sridTarget = atoi(srsTarget.c_str());
  18 +
  19 + OGRErr source = this->ogrSource_.importFromEPSG(sridSource);
  20 + if(source != 0)
  21 + {
  22 + source = this->ogrSource_.importFromWkt(getCoordWKT(sridSource));
  23 + }
  24 + OGRErr target =this->ogrTarget_.importFromEPSG(sridTarget);
  25 + if(target != 0)
  26 + {
  27 + target = this->ogrTarget_.importFromWkt(getCoordWKT(sridTarget));
  28 + }
  29 +
  30 + ogrCoordinateTransformation = OGRCreateCoordinateTransformation( &ogrSource_, &ogrTarget_);
  31 +}
  32 +
  33 +
  34 +int DmpCoordinateTransformation::Transform(int nCount, double *x, double *y, double *z, int *pabSuccess)
  35 +{
  36 + if(ogrCoordinateTransformation)
  37 + {
  38 + return ogrCoordinateTransformation->Transform(nCount, x, y, z,pabSuccess );
  39 + }
  40 + else
  41 + {
  42 + return -1;
  43 + }
  44 +}
  45 +
  46 +const char* DmpCoordinateTransformation::getCoordWKT(int srid)
  47 +{
  48 + switch (srid)
  49 + {
  50 + case 4479: return R"(GEOCCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4479"]])";
  51 + case 4490: return R"(GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]])";
  52 + //case 4527: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 39",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",39500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4527"]]")";
  53 + //西安80
  54 + case 4610: return R"(GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]])";
  55 +
  56 + case 4491: return R"(PROJCS["CGCS2000 / Gauss-Kruger zone 13",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",13500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4491"]])";
  57 + case 4492: return R"(PROJCS["CGCS2000 / Gauss-Kruger zone 14",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",14500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4492"]])";
  58 + case 4493: return R"(PROJCS["CGCS2000 / Gauss-Kruger zone 15",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",15500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4493"]])";
  59 + case 4494: return R"(PROJCS["CGCS2000 / Gauss-Kruger zone 16",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",16500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4494"]])";
  60 + case 4495: return R"(PROJCS["CGCS2000 / Gauss-Kruger zone 17",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",17500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4495"]])";
  61 + case 4496: return R"(PROJCS["CGCS2000 / Gauss-Kruger zone 18",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",18500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4496"]])";
  62 + case 4497: return R"(PROJCS["CGCS2000 / Gauss-Kruger zone 19",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",19500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4497"]])";
  63 + case 4498: return R"(PROJCS["CGCS2000 / Gauss-Kruger zone 20",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",20500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4498"]])";
  64 + case 4499: return R"(PROJCS["CGCS2000 / Gauss-Kruger zone 21",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",21500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4499"]])";
  65 + case 4502: return R"(PROJCS["CGCS2000 / Gauss-Kruger CM 75E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4502"]])";
  66 + case 4503: return R"(PROJCS["CGCS2000 / Gauss-Kruger CM 81E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4503"]])";
  67 + case 4504: return R"(PROJCS["CGCS2000 / Gauss-Kruger CM 87E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4504"]])";
  68 + case 4505: return R"(PROJCS["CGCS2000 / Gauss-Kruger CM 93E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4505"]])";
  69 + case 4506: return R"(PROJCS["CGCS2000 / Gauss-Kruger CM 99E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4506"]])";
  70 + case 4507: return R"(PROJCS["CGCS2000 / Gauss-Kruger CM 105E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4507"]])";
  71 + case 4508: return R"(PROJCS["CGCS2000 / Gauss-Kruger CM 111E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4508"]])";
  72 + case 4509: return R"(PROJCS["CGCS2000 / Gauss-Kruger CM 117E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4509"]])";
  73 + case 4510: return R"(PROJCS["CGCS2000 / Gauss-Kruger CM 123E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4510"]])";
  74 + case 4511: return R"(PROJCS["CGCS2000 / Gauss-Kruger CM 129E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4511"]])";
  75 + case 4512: return R"(PROJCS["CGCS2000 / Gauss-Kruger CM 135E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4512"]])";
  76 + case 4513: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 25",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",25500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4513"]])";
  77 + case 4514: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 26",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",78],PARAMETER["scale_factor",1],PARAMETER["false_easting",26500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4514"]])";
  78 + case 4515: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 27",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",27500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4515"]])";
  79 + case 4516: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 28",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",84],PARAMETER["scale_factor",1],PARAMETER["false_easting",28500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4516"]])";
  80 + case 4517: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 29",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",29500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4517"]])";
  81 + case 4518: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 30",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",30500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4518"]])";
  82 + case 4519: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 31",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",31500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4519"]])";
  83 + case 4520: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 32",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",96],PARAMETER["scale_factor",1],PARAMETER["false_easting",32500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4520"]])";
  84 + case 4521: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 33",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",33500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4521"]])";
  85 + case 4522: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 34",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",102],PARAMETER["scale_factor",1],PARAMETER["false_easting",34500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4522"]])";
  86 + case 4523: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 35",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",35500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4523"]])";
  87 + case 4524: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 36",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",108],PARAMETER["scale_factor",1],PARAMETER["false_easting",36500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4524"]])";
  88 + case 4525: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 37",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",37500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4525"]])";
  89 + case 4526: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 38",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",114],PARAMETER["scale_factor",1],PARAMETER["false_easting",38500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4526"]])";
  90 + case 4527: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 39",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",39500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4527"]])";
  91 + case 4528: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 40",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",120],PARAMETER["scale_factor",1],PARAMETER["false_easting",40500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4528"]])";
  92 + case 4529: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 41",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",41500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4529"]])";
  93 + case 4530: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 42",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",126],PARAMETER["scale_factor",1],PARAMETER["false_easting",42500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4530"]])";
  94 + case 4531: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 43",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",43500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4531"]])";
  95 + case 4532: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 44",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",132],PARAMETER["scale_factor",1],PARAMETER["false_easting",44500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4532"]])";
  96 + case 4533: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 45",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",45500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4533"]])";
  97 +
  98 + case 4534: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 75E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4534"]])";
  99 + case 4535: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 78E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",78],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4535"]])";
  100 + case 4536: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 81E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4536"]])";
  101 + case 4537: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 84E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",84],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4537"]])";
  102 + case 4538: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 87E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4538"]])";
  103 + case 4539: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 90E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4539"]])";
  104 + case 4540: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 93E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4540"]])";
  105 + case 4541: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 96E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",96],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4541"]])";
  106 + case 4542: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 99E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4542"]])";
  107 + case 4543: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 102E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",102],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4543"]])";
  108 + case 4544: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 105E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4544"]])";
  109 + case 4545: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 108E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",108],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4545"]])";
  110 + case 4546: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 111E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4546"]])";
  111 + case 4547: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 114E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",114],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4547"]])";
  112 + case 4548: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 117E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4548"]])";
  113 + case 4549: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 120E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",120],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4549"]])";
  114 + case 4550: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 123E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4550"]])";
  115 + case 4551: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 126E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",126],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4551"]])";
  116 + case 4552: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 129E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4552"]])";
  117 + case 4553: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 132E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",132],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4553"]])";
  118 + case 4554: return R"(PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 135E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4554"]])";
  119 + case 4578: return R"(PROJCS["New Beijing / Gauss-Kruger zone 23",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",23500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4578"]])";
  120 + case 4568: return R"(PROJCS["New Beijing / Gauss-Kruger zone 13",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",13500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4568"]])";
  121 + case 4569: return R"(PROJCS["New Beijing / Gauss-Kruger zone 14",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",14500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4569"]])";
  122 + case 4570: return R"(PROJCS["New Beijing / Gauss-Kruger zone 15",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",15500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4570"]])";
  123 + case 4571: return R"(PROJCS["New Beijing / Gauss-Kruger zone 16",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",16500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4571"]])";
  124 + case 4572: return R"(PROJCS["New Beijing / Gauss-Kruger zone 17",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",17500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4572"]])";
  125 + case 4573: return R"(PROJCS["New Beijing / Gauss-Kruger zone 18",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",18500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4573"]])";
  126 + case 4574: return R"(PROJCS["New Beijing / Gauss-Kruger zone 19",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",19500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4574"]])";
  127 + case 4575: return R"(PROJCS["New Beijing / Gauss-Kruger zone 20",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",20500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4575"]])";
  128 + case 4576: return R"(PROJCS["New Beijing / Gauss-Kruger zone 21",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",21500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4576"]])";
  129 + case 4577: return R"(PROJCS["New Beijing / Gauss-Kruger zone 22",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",22500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4577"]])";
  130 + case 4581: return R"(PROJCS["New Beijing / Gauss-Kruger CM 87E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4581"]])";
  131 + case 4582: return R"(PROJCS["New Beijing / Gauss-Kruger CM 93E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4582"]])";
  132 + case 4583: return R"(PROJCS["New Beijing / Gauss-Kruger CM 99E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4583"]])";
  133 + case 4584: return R"(PROJCS["New Beijing / Gauss-Kruger CM 105E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4584"]])";
  134 + case 4585: return R"(PROJCS["New Beijing / Gauss-Kruger CM 111E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4585"]])";
  135 + case 4586: return R"(PROJCS["New Beijing / Gauss-Kruger CM 117E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4586"]])";
  136 + case 4587: return R"(PROJCS["New Beijing / Gauss-Kruger CM 123E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4587"]])";
  137 + case 4588: return R"(PROJCS["New Beijing / Gauss-Kruger CM 129E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4588"]])";
  138 + case 4589: return R"(PROJCS["New Beijing / Gauss-Kruger CM 135E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4589"]])";
  139 + case 4652: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger zone 25",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",25500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4652"]])";
  140 + case 4653: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger zone 26",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",78],PARAMETER["scale_factor",1],PARAMETER["false_easting",26500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4653"]])";
  141 + case 4654: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger zone 27",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",27500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4654"]])";
  142 + case 4655: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger zone 28",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",84],PARAMETER["scale_factor",1],PARAMETER["false_easting",28500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4655"]])";
  143 + case 4656: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger zone 29",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",29500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4656"]])";
  144 + case 4766: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger zone 30",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",30500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4766"]])";
  145 + case 4767: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger zone 31",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",31500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4767"]])";
  146 + case 4768: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger zone 32",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",96],PARAMETER["scale_factor",1],PARAMETER["false_easting",32500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4768"]])";
  147 + case 4769: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger zone 33",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",33500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4769"]])";
  148 + case 4770: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger zone 34",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",102],PARAMETER["scale_factor",1],PARAMETER["false_easting",34500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4770"]])";
  149 + case 4771: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger zone 35",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",35500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4771"]])";
  150 + case 4772: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger zone 36",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",108],PARAMETER["scale_factor",1],PARAMETER["false_easting",36500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4772"]])";
  151 + case 4773: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger zone 37",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",37500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4773"]])";
  152 + case 4774: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger zone 38",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",114],PARAMETER["scale_factor",1],PARAMETER["false_easting",38500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4774"]])";
  153 + case 4775: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger zone 39",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",39500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4775"]])";
  154 + case 4776: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger zone 40",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",120],PARAMETER["scale_factor",1],PARAMETER["false_easting",40500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4776"]])";
  155 + case 4777: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger zone 41",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",41500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4777"]])";
  156 + case 4778: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger zone 42",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",126],PARAMETER["scale_factor",1],PARAMETER["false_easting",42500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4778"]])";
  157 + case 4779: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger zone 43",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",43500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4779"]])";
  158 + case 4780: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger zone 44",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",132],PARAMETER["scale_factor",1],PARAMETER["false_easting",44500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4780"]])";
  159 + case 4781: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger zone 45",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",45500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4781"]])";
  160 + case 4782: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger CM 75E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4782"]])";
  161 + case 4783: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger CM 78E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",78],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4783"]])";
  162 + case 4784: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger CM 81E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4784"]])";
  163 + case 4785: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger CM 84E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",84],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4785"]])";
  164 + case 4786: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger CM 87E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4786"]])";
  165 + case 4787: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger CM 90E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4787"]])";
  166 + case 4788: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger CM 93E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4788"]])";
  167 + case 4789: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger CM 96E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",96],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4789"]])";
  168 + case 4790: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger CM 99E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4790"]])";
  169 + case 4791: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger CM 102E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",102],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4791"]])";
  170 + case 4792: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger CM 105E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4792"]])";
  171 + case 4793: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger CM 108E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",108],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4793"]])";
  172 + case 4794: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger CM 111E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4794"]])";
  173 + case 4795: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger CM 114E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",114],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4795"]])";
  174 + case 4796: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger CM 117E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4796"]])";
  175 + case 4797: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger CM 120E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",120],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4797"]])";
  176 + case 4798: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger CM 123E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4798"]])";
  177 + case 4799: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger CM 126E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",126],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4799"]])";
  178 + case 4800: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger CM 129E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4800"]])";
  179 + case 4812: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger CM 132E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",132],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4812"]])";
  180 + case 4822: return R"(PROJCS["New Beijing / 3-degree Gauss-Kruger CM 135E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4822"]])";
  181 + case 4826: return R"(PROJCS["WGS 84 / Cape Verde National",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",15],PARAMETER["standard_parallel_2",16.66666666666667],PARAMETER["latitude_of_origin",15.83333333333333],PARAMETER["central_meridian",-24],PARAMETER["false_easting",161587.83],PARAMETER["false_northing",128511.202],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["M",EAST],AXIS["P",NORTH],AUTHORITY["EPSG","4826"]])";
  182 +
  183 + case 5479: return R"(PROJCS["RSRGD2000 / MSLC2000",GEOGCS["RSRGD2000",DATUM["Ross_Sea_Region_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6764"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4764"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-78],PARAMETER["central_meridian",163],PARAMETER["false_easting",7000000],PARAMETER["false_northing",5000000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","5479"]])";
  184 +
  185 + default:
  186 + return "";
  187 + }
  188 +}
  1 +/**************************************************************************
  2 +* file: dmpcoordinatetransformation.h
  3 +
  4 +* Author: qingxiongf
  5 +* Date: 2022-03-11 10:54:02
  6 +* Email: qingxiongf@chinadci.com
  7 +* copyright: 广州城市信息研究所有限公司
  8 +***************************************************************************/
  9 +
  10 +#ifndef __dmpcoordinatetransformation_h__
  11 +#define __dmpcoordinatetransformation_h__
  12 +
  13 +#include "dmap_core.h"
  14 +#include <gdal.h>
  15 +#include <gdalgeorefpamdataset.h>
  16 +#include <gdalgrid.h>
  17 +#include <string>
  18 +#include <map>
  19 +
  20 +using namespace std;
  21 +
  22 +class CORE_EXPORT DmpCoordinateTransformation
  23 +{
  24 +public:
  25 + DmpCoordinateTransformation(string srsSource, string srsTarget);
  26 + //bool SetSourceWellKnownGeogCS(string srid);
  27 + //bool SetTargetWellKnownGeogCS(string srid);
  28 + int Transform(int nCount, double *x, double *y, double *z = nullptr, int *pabSuccess = nullptr);
  29 +
  30 +private:
  31 + OGRSpatialReference ogrSource_;
  32 + OGRSpatialReference ogrTarget_;
  33 + OGRCoordinateTransformation *ogrCoordinateTransformation;
  34 + string srsSource_;
  35 + string srsTarget_;
  36 +
  37 + const char* getCoordWKT(int srid);
  38 +
  39 +};
  40 +
  41 +
  42 +#endif // __dmpcoordinatetransformation_h__
1 -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -o -lfcgi++ -lfcgi") 1 +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -o -lfcgi++ -lfcgi")
2 2
3 INCLUDE_DIRECTORIES( 3 INCLUDE_DIRECTORIES(
4 ${CMAKE_SOURCE_DIR}/src/server/spserver 4 ${CMAKE_SOURCE_DIR}/src/server/spserver
@@ -57,7 +57,7 @@ public: @@ -57,7 +57,7 @@ public:
57 { 57 {
58 return; 58 return;
59 } 59 }
60 - // printf("%s\r\n", szRequest); 60 + printf("%s\r\n", szRequest);
61 61
62 DmpSpServerRequest dmpRequest(request); 62 DmpSpServerRequest dmpRequest(request);
63 DmpSpServerResponse dmpResponse(response); 63 DmpSpServerResponse dmpResponse(response);
  1 +/**************************************************************************
  2 +* file: dmpmapprinthandler.cpp
  3 +
  4 +* Author: qingxiongf
  5 +* Date: 2022-03-15 13:47:56
  6 +* Email: qingxiongf@chinadci.com
  7 +* copyright: 广州城市信息研究所有限公司
  8 +***************************************************************************/
  9 +
  10 +#include <iostream>
  11 +#include <boost/json.hpp>
  12 +#include <boost/property_tree/ptree.hpp>
  13 +#include <boost/property_tree/json_parser.hpp>
  14 +#include <boost/property_tree/xml_parser.hpp>
  15 +#include <boost/foreach.hpp>
  16 +#include <boost/lexical_cast.hpp>
  17 +#include <boost/algorithm/string.hpp>
  18 +#include <boost/date_time.hpp>
  19 +
  20 +#include "dmpmapprinthandler.h"
  21 +#include "dmpserverrequest.h"
  22 +#include "dmpserverresponse.h"
  23 +#include "dmplogger.h"
  24 +#include "dmpservermanager.h"
  25 +#include "dmpserverutils.h"
  26 +
  27 +DmpMapPrintHandler::DmpMapPrintHandler()
  28 +{
  29 +
  30 +}
  31 +/*
  32 + {
  33 + "format":"pdf",
  34 + "para":{},
  35 + "mapservice":[],
  36 + "box":{
  37 + "minx":0.0,
  38 + "maxx":1.0,
  39 + "miny":0.1,
  40 + "maxy":1.1
  41 + },
  42 + "temple":"A4H",
  43 + "symbol":[
  44 + {
  45 + "size":0,
  46 + "type":"lable",
  47 + "text":"",
  48 + "color":""
  49 + },
  50 + {
  51 + "type":"point",
  52 + "data":"point(0,1)"
  53 + "size":0,
  54 + "color":""
  55 + }
  56 + ]
  57 +}
  58 +*/
  59 +
  60 +void DmpMapPrintHandler::HandleRequest(const DmpServerApiContext &context) const
  61 +{
  62 + switch (context.request()->method())
  63 + {
  64 +
  65 + case DmpServerRequest::Method::GET_METHOD:
  66 + {
  67 + context.response()->write("{\"status\":\"true\",\"message\":\"\"}");
  68 + break;
  69 + }
  70 + case DmpServerRequest::Method::POST_METHOD:
  71 + {
  72 + std::string name;
  73 + std::string title;
  74 + int capabilities;
  75 + std::string serverType;
  76 + std::string project;
  77 + const char* data = (char*)(context.request()->GetData());
  78 + if(data && *data != '\0')
  79 + {
  80 + try
  81 + {
  82 + std::stringstream stream(data);
  83 + boost::property_tree::ptree pt;
  84 + boost::property_tree::read_json(stream, pt);
  85 +
  86 + name = pt.get<std::string>("name");
  87 + title = pt.get<std::string>("title");
  88 + capabilities = pt.get<int>("capabilities");
  89 + serverType = pt.get<std::string>("type");
  90 + project = pt.get<std::string>("project");
  91 + }
  92 + catch (boost::property_tree::ptree_bad_path& e) {
  93 + LOGGER_ERROR(e.what());
  94 + context.response()->write("{\"status\":\"false\",\"message\":\"服务发布失败\"}");
  95 + return;
  96 + }
  97 + catch (boost::property_tree::ptree_bad_data& e) {
  98 + LOGGER_ERROR(e.what());
  99 + context.response()->write("{\"status\":\"false\",\"message\":\"服务发布失败\"}");
  100 + return;
  101 + }
  102 +
  103 +
  104 + // std::string projData;
  105 + // DmpServerUtils::Base64Decode(project, &projData);
  106 + context.response()->removeHeader("Content-Type");
  107 + context.response()->setHeader("Content-Type", "text/xml;charset=utf-8");
  108 + // context.response()->write(projData);
  109 + context.response()->write("{\"status\":\""+std::to_string(flag)+"\",\"url\":\""+url+"\",\"message\":\"Pulish service successful!\"}");
  110 + }
  111 + else
  112 + {
  113 + LOGGER_ERROR("服务发布失败");
  114 + if(flag==0)
  115 + {
  116 + context.response()->write("{\"status\":\""+std::to_string(flag)+"\",\"message\":\"Pulish service thumbnail fail!\"}");
  117 + }
  118 + else
  119 + {
  120 + context.response()->write("{\"status\":\""+std::to_string(flag)+"\",\"message\":\"Pulish service fail!\"}");
  121 + }
  122 + }
  123 + }
  124 + else
  125 + {
  126 + LOGGER_ERROR("POST数据为空");
  127 + context.response()->write("{\"status\":\"false\",\"message\":\"Pulish service fail!\"}");
  128 + return;
  129 + }
  130 + break;
  131 +
  132 + }
  133 + default:
  134 + {
  135 +
  136 + }
  137 + }
  138 +
  139 +}
  1 +/**************************************************************************
  2 +* file: dmpmapprinthandler.h
  3 +
  4 +* Author: qingxiongf
  5 +* Date: 2022-03-15 13:47:44
  6 +* Email: qingxiongf@chinadci.com
  7 +* copyright: 广州城市信息研究所有限公司
  8 +***************************************************************************/
  9 +
  10 +#ifndef __dmpmapprinthandler_h__
  11 +#define __dmpmapprinthandler_h__
  12 +
  13 +#include "dmpserverapihandler.h"
  14 +
  15 +class DmpMapPrintHandler : DmpServerApiHandler
  16 +{
  17 +public:
  18 + DmpMapPrintHandler();
  19 + void HandleRequest(const DmpServerApiContext &context) const override;
  20 + //填写正则表达式,来验证对应的url是否符合handler的处理
  21 + //Path: /dmap/api/manager/{action}
  22 + std::string Path() const override { return "/dmap/api/mapprint/(?<action>[^/]+?)"; }
  23 +
  24 +
  25 +};
  26 +
  27 +#endif // __dmpmapprinthandler_h__
@@ -178,12 +178,15 @@ namespace DmpWfs @@ -178,12 +178,15 @@ namespace DmpWfs
178 GetStringParameter("FORMAT",value); 178 GetStringParameter("FORMAT",value);
179 } 179 }
180 if (value.empty()) { 180 if (value.empty()) {
  181 + GetStringParameter("OUTPUTFORMAT",value);
  182 + }
  183 + if (value.empty()) {
181 return DmpWfsParameters::Format::GML3; 184 return DmpWfsParameters::Format::GML3;
182 } 185 }
183 186
184 Format f = Format::GML3; 187 Format f = Format::GML3;
185 boost::to_lower(value); 188 boost::to_lower(value);
186 - if (value.compare("geojson") == 0 || value.compare("json") == 0 ) { 189 + if (value.compare("geojson") == 0 || value.compare("json") == 0 || value.compare("text/json")|| value.compare("application/json")) {
187 f = DmpWfsParameters::Format::GeoJson; 190 f = DmpWfsParameters::Format::GeoJson;
188 } 191 }
189 return f; 192 return f;
@@ -48,7 +48,8 @@ namespace DmpWms @@ -48,7 +48,8 @@ namespace DmpWms
48 } 48 }
49 else if(boost::iequals(request, "getcapabilities")) 49 else if(boost::iequals(request, "getcapabilities"))
50 { 50 {
51 - writeGetCapabilities_3_0(context,params, project); 51 + //writeGetCapabilities(context,params, project);
  52 + writeGetCapabilities_3_0(context,params, project);
52 } 53 }
53 else if(boost::iequals(request, "getmap")) 54 else if(boost::iequals(request, "getmap"))
54 { 55 {
@@ -12,6 +12,7 @@ @@ -12,6 +12,7 @@
12 #include "dmpserverproject.h" 12 #include "dmpserverproject.h"
13 #include "dmpmapserverutil.h" 13 #include "dmpmapserverutil.h"
14 #include "dmppgsqlsourcepools.h" 14 #include "dmppgsqlsourcepools.h"
  15 +#include "dmpcoordinatetransformation.h"
15 16
16 using namespace mapserver; 17 using namespace mapserver;
17 namespace DmpWms 18 namespace DmpWms
@@ -49,11 +50,60 @@ namespace DmpWms @@ -49,11 +50,60 @@ namespace DmpWms
49 context.response()->write(xml); 50 context.response()->write(xml);
50 } 51 }
51 52
  53 + bool ApplendCoord(std::string& reponseString, std::string orgSrid, std::string targetSrid,
  54 + double x1, double y1, double x2, double y2)
  55 + {
  56 + if(orgSrid == targetSrid)
  57 + {
  58 + return false;
  59 + }
  60 +
  61 + DmpCoordinateTransformation dmpTransformation(orgSrid, targetSrid);
  62 + if(dmpTransformation.Transform(1, &y1, &x1) <= 0 || dmpTransformation.Transform(1, &y2, &x2) <= 0)
  63 + {
  64 + return false;
  65 + }
  66 + char resultBuff[200];
  67 + sprintf(resultBuff, "<BoundingBox CRS=\"EPSG:%s\" minx=\"%f\" miny=\"%f\" maxx=\"%f\" maxy=\"%f\"/>",
  68 + targetSrid.c_str(), y1, x1,y2,x2);
  69 + // rect_service->m_dBottom, rect_service->m_dRight,rect_service->m_dTop
  70 + reponseString.append(resultBuff);
  71 + return true;
  72 + }
  73 +
  74 + bool ApplendCoords(std::string& reponseString, std::string orgSrid,
  75 + double x1, double y1, double x2, double y2)
  76 + {
  77 + if(orgSrid.length() != 4)
  78 + {
  79 + return false;
  80 + }
  81 +
  82 + ApplendCoord(reponseString, orgSrid, "4326",x1, y1, x2, y2);
  83 + ApplendCoord(reponseString, orgSrid, "4490",x1, y1, x2, y2);
  84 + ApplendCoord(reponseString, orgSrid, "4547",x1, y1, x2, y2);
  85 + //ApplendCoord(reponseString, orgSrid, "4547",x1, y1, x2, y2);
  86 + return true;
  87 + }
  88 +
  89 + bool ApplendCoords(std::string& reponseString, std::string orgSrid)
  90 + {
  91 + if(orgSrid.length() != 4)
  92 + {
  93 + return false;
  94 + }
  95 +
  96 + if(orgSrid != "4326") reponseString.append("<CRS>EPSG:4326</CRS>");
  97 + if(orgSrid != "4490") reponseString.append("<CRS>EPSG:4490</CRS>");
  98 + if(orgSrid != "4547") reponseString.append("<CRS>EPSG:4547</CRS>");
  99 + return true;
  100 + }
  101 +
52 void writeGetCapabilities_3_0(const DmpServerContext &context, const DmpWmsParameters& params, 102 void writeGetCapabilities_3_0(const DmpServerContext &context, const DmpWmsParameters& params,
53 const DmpProject* project, bool projectSettings) 103 const DmpProject* project, bool projectSettings)
54 { 104 {
55 char resultBuff[10000]; 105 char resultBuff[10000];
56 - string reponseString; 106 + std::string reponseString;
57 std::string version = params.Version(); 107 std::string version = params.Version();
58 std::string hrefUrl; 108 std::string hrefUrl;
59 char char_hrefUrl[1024] = {0}; 109 char char_hrefUrl[1024] = {0};
@@ -112,7 +162,7 @@ namespace DmpWms @@ -112,7 +162,7 @@ namespace DmpWms
112 { 162 {
113 sprintf(resultBuff, "<CRS>EPSG:%s</CRS>", srid.c_str()); 163 sprintf(resultBuff, "<CRS>EPSG:%s</CRS>", srid.c_str());
114 reponseString.append(resultBuff); 164 reponseString.append(resultBuff);
115 - 165 + ApplendCoords(reponseString, srid);
116 sprintf(resultBuff, R"(<EX_GeographicBoundingBox> 166 sprintf(resultBuff, R"(<EX_GeographicBoundingBox>
117 <westBoundLongitude>%f</westBoundLongitude> 167 <westBoundLongitude>%f</westBoundLongitude>
118 <eastBoundLongitude>%f</eastBoundLongitude> 168 <eastBoundLongitude>%f</eastBoundLongitude>
@@ -123,14 +173,16 @@ namespace DmpWms @@ -123,14 +173,16 @@ namespace DmpWms
123 rect_service->ymax()); 173 rect_service->ymax());
124 reponseString.append(resultBuff); 174 reponseString.append(resultBuff);
125 175
126 - 176 +
127 177
128 sprintf(resultBuff, "<BoundingBox CRS=\"EPSG:%s\" minx=\"%f\" miny=\"%f\" maxx=\"%f\" maxy=\"%f\"/>", 178 sprintf(resultBuff, "<BoundingBox CRS=\"EPSG:%s\" minx=\"%f\" miny=\"%f\" maxx=\"%f\" maxy=\"%f\"/>",
129 - srid.c_str(), rect_service->xmin(), rect_service->ymin(),  
130 - rect_service->xmax(), rect_service->ymax()); 179 + srid.c_str(), rect_service->ymin(), rect_service->xmin(),rect_service->ymax(),
  180 + rect_service->xmax());
131 // rect_service->m_dBottom, rect_service->m_dRight,rect_service->m_dTop 181 // rect_service->m_dBottom, rect_service->m_dRight,rect_service->m_dTop
132 reponseString.append(resultBuff); 182 reponseString.append(resultBuff);
133 183
  184 + ApplendCoords(reponseString,srid,rect_service->xmin(),rect_service->ymin(), rect_service->xmax(),rect_service->ymax() );
  185 +
134 for (int i = 0; i < project->vectorLayers().size(); i++) 186 for (int i = 0; i < project->vectorLayers().size(); i++)
135 { 187 {
136 DmpVectorLayer *mapLayer = (DmpVectorLayer *)project->vectorLayers().at(i); 188 DmpVectorLayer *mapLayer = (DmpVectorLayer *)project->vectorLayers().at(i);
@@ -149,19 +201,28 @@ namespace DmpWms @@ -149,19 +201,28 @@ namespace DmpWms
149 reponseString.append(resultBuff); 201 reponseString.append(resultBuff);
150 // if(rect == nullptr) 202 // if(rect == nullptr)
151 // continue; 203 // continue;
152 - sprintf(resultBuff, "\r\n<Layer queryable=\"1\"><CRS>EPSG:%s</CRS><Name>%s</Name><Title>%s</Title><BoundingBox CRS=\"EPSG:%s\" minx=\"%lf\" miny=\"%lf\" maxx=\"%lf\" maxy=\"%lf\" /></Layer>",  
153 - mapLayer->srid().c_str(),  
154 204
  205 + sprintf(resultBuff, "\r\n<Layer queryable=\"1\"><CRS>EPSG:%s</CRS>", mapLayer->srid().c_str());
  206 +
  207 + reponseString.append(resultBuff);
  208 +
  209 + ApplendCoords(reponseString, mapLayer->srid());
  210 + sprintf(resultBuff, "<Name>%s</Name><Title>%s</Title><BoundingBox CRS=\"EPSG:%s\" minx=\"%lf\" miny=\"%lf\" maxx=\"%lf\" maxy=\"%lf\" />",
155 mapLayer->name().c_str(), 211 mapLayer->name().c_str(),
156 mapLayer->title().empty()? mapLayer->name().c_str(): mapLayer->title().c_str(), 212 mapLayer->title().empty()? mapLayer->name().c_str(): mapLayer->title().c_str(),
157 mapLayer->srid().c_str(), 213 mapLayer->srid().c_str(),
158 - rect.xmin(),  
159 rect.ymin(), 214 rect.ymin(),
160 - rect.xmax(),  
161 - rect.ymax() 215 + rect.xmin(),
  216 + rect.ymax(),
  217 + rect.xmax()
  218 +
162 ); 219 );
163 220
164 reponseString.append(resultBuff); 221 reponseString.append(resultBuff);
  222 + ApplendCoords(reponseString,srid,rect_service->xmin(),rect.ymin(), rect.xmax(),rect.ymax());
  223 +
  224 + reponseString.append("</Layer>");
  225 +
165 } 226 }
166 reponseString.append("</Layer></Capability></WMS_Capabilities>"); 227 reponseString.append("</Layer></Capability></WMS_Capabilities>");
167 } 228 }
@@ -177,11 +238,12 @@ namespace DmpWms @@ -177,11 +238,12 @@ namespace DmpWms
177 std::shared_ptr<boost::property_tree::ptree> xmlRootDoc(new boost::property_tree::ptree()); 238 std::shared_ptr<boost::property_tree::ptree> xmlRootDoc(new boost::property_tree::ptree());
178 boost::property_tree::ptree xmlRoot; 239 boost::property_tree::ptree xmlRoot;
179 std::string rootname; 240 std::string rootname;
180 - 241 + bool isVersion130 = false;
181 if ( version == "1.1.1" ) 242 if ( version == "1.1.1" )
182 { 243 {
183 rootname = "WMT_MS_Capabilities"; 244 rootname = "WMT_MS_Capabilities";
184 - xmlRoot.add("<xmlattr>.version", version); 245 + xmlRoot.add("<xmlattr>.version", version);
  246 + isVersion130 = false;
185 } 247 }
186 else // 1.3.0 as default 248 else // 1.3.0 as default
187 { 249 {
@@ -191,6 +253,7 @@ namespace DmpWms @@ -191,6 +253,7 @@ namespace DmpWms
191 // xmlRoot.add("<xmlattr>.xmlns:sld","http://www.opengis.net/sld"); 253 // xmlRoot.add("<xmlattr>.xmlns:sld","http://www.opengis.net/sld");
192 // xmlRoot.add("<xmlattr>.xsi:schemaLocation","http://www.opengis.net/wms http://schemas.opengis.net/wms/1.3.0/capabilities_1_3_0.xsd http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/sld_capabilities.xsd"); 254 // xmlRoot.add("<xmlattr>.xsi:schemaLocation","http://www.opengis.net/wms http://schemas.opengis.net/wms/1.3.0/capabilities_1_3_0.xsd http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/sld_capabilities.xsd");
193 xmlRoot.add("<xmlattr>.version", "1.3.0"); 255 xmlRoot.add("<xmlattr>.version", "1.3.0");
  256 + isVersion130 = true;
194 } 257 }
195 258
196 boost::property_tree::ptree ptService; 259 boost::property_tree::ptree ptService;
@@ -214,7 +277,7 @@ namespace DmpWms @@ -214,7 +277,7 @@ namespace DmpWms
214 format.add( "INIMAGE",""); 277 format.add( "INIMAGE","");
215 ptexception.add_child("Exception",format); 278 ptexception.add_child("Exception",format);
216 ptCapability.add_child("Format",ptexception); 279 ptCapability.add_child("Format",ptexception);
217 - addCapabilitiesLayers(ptCapability,project,name,title); 280 + addCapabilitiesLayers(ptCapability,project,name,title,isVersion130);
218 281
219 xmlRoot.add_child("Capability",ptCapability); 282 xmlRoot.add_child("Capability",ptCapability);
220 xmlRootDoc->add_child(rootname,xmlRoot); 283 xmlRootDoc->add_child(rootname,xmlRoot);
@@ -320,7 +383,7 @@ namespace DmpWms @@ -320,7 +383,7 @@ namespace DmpWms
320 return; 383 return;
321 } 384 }
322 385
323 - void addCapabilitiesLayers(boost::property_tree::ptree &pt,const DmpProject* project, std::string& name, std::string& title) 386 + void addCapabilitiesLayers(boost::property_tree::ptree &pt,const DmpProject* project, std::string& name, std::string& title, bool isVersion13)
324 { 387 {
325 388
326 std::string srs = "EPSG:" + std::__cxx11::to_string(project->crs().srid()); 389 std::string srs = "EPSG:" + std::__cxx11::to_string(project->crs().srid());
@@ -372,11 +435,11 @@ namespace DmpWms @@ -372,11 +435,11 @@ namespace DmpWms
372 ptGeographicBoundingbox.add("eastBoundLongitude", maxx); 435 ptGeographicBoundingbox.add("eastBoundLongitude", maxx);
373 ptGeographicBoundingbox.add("southBoundLatitude", miny); 436 ptGeographicBoundingbox.add("southBoundLatitude", miny);
374 ptGeographicBoundingbox.add("northBoundLatitude", maxy); 437 ptGeographicBoundingbox.add("northBoundLatitude", maxy);
375 - // ptProject.add_child("EX_GeographicBoundingBox",ptGeographicBoundingbox); 438 + ptProject.add_child("EX_GeographicBoundingBox",ptGeographicBoundingbox);
376 439
377 boost::property_tree::ptree ptBoundingbox; 440 boost::property_tree::ptree ptBoundingbox;
378 ptBoundingbox.add("<xmlattr>.CRS", srs); 441 ptBoundingbox.add("<xmlattr>.CRS", srs);
379 - if (boost::iequals(srs, "CRS:84")|| boost::iequals(srs, "EPSG:4326")) 442 + if (isVersion13)
380 { 443 {
381 ptBoundingbox.add("<xmlattr>.miny", minx); 444 ptBoundingbox.add("<xmlattr>.miny", minx);
382 ptBoundingbox.add("<xmlattr>.maxy", maxx); 445 ptBoundingbox.add("<xmlattr>.maxy", maxx);
@@ -395,12 +458,12 @@ namespace DmpWms @@ -395,12 +458,12 @@ namespace DmpWms
395 for (int i=0; i<vectorLayers.size(); i++) 458 for (int i=0; i<vectorLayers.size(); i++)
396 { 459 {
397 DmpMapLayer* layer = vectorLayers[i]; 460 DmpMapLayer* layer = vectorLayers[i];
398 - addCapabilitiesLayer(ptProject, layer,srs); 461 + addCapabilitiesLayer(ptProject, layer,srs,isVersion13);
399 } 462 }
400 pt.add_child("Layer", ptProject); 463 pt.add_child("Layer", ptProject);
401 } 464 }
402 465
403 - void addCapabilitiesLayer(boost::property_tree::ptree &pt, DmpMapLayer* layer, const std::string& srs) 466 + void addCapabilitiesLayer(boost::property_tree::ptree &pt, DmpMapLayer* layer, const std::string& srs, bool isVersion13)
404 { 467 {
405 boost::property_tree::ptree ptLayer; 468 boost::property_tree::ptree ptLayer;
406 ptLayer.add("<xmlattr>.queryable","1"); 469 ptLayer.add("<xmlattr>.queryable","1");
@@ -413,11 +476,11 @@ namespace DmpWms @@ -413,11 +476,11 @@ namespace DmpWms
413 ptGeographicBoundingbox.add("eastBoundLongitude", layer->extent().xmax()); 476 ptGeographicBoundingbox.add("eastBoundLongitude", layer->extent().xmax());
414 ptGeographicBoundingbox.add("southBoundLatitude", layer->extent().ymin()); 477 ptGeographicBoundingbox.add("southBoundLatitude", layer->extent().ymin());
415 ptGeographicBoundingbox.add("northBoundLatitude", layer->extent().ymax()); 478 ptGeographicBoundingbox.add("northBoundLatitude", layer->extent().ymax());
416 - //ptLayer.add_child("EX_GeographicBoundingBox",ptGeographicBoundingbox); 479 + ptLayer.add_child("EX_GeographicBoundingBox",ptGeographicBoundingbox);
417 480
418 boost::property_tree::ptree ptBoundingbox; 481 boost::property_tree::ptree ptBoundingbox;
419 ptBoundingbox.add("<xmlattr>.CRS", srs); 482 ptBoundingbox.add("<xmlattr>.CRS", srs);
420 - if (boost::iequals(srs, "CRS:84")|| boost::iequals(srs, "EPSG:4326")) 483 + if (isVersion13)
421 { 484 {
422 ptBoundingbox.add("<xmlattr>.miny", layer->extent().xmin()); 485 ptBoundingbox.add("<xmlattr>.miny", layer->extent().xmin());
423 ptBoundingbox.add("<xmlattr>.maxy", layer->extent().xmax()); 486 ptBoundingbox.add("<xmlattr>.maxy", layer->extent().xmax());
@@ -33,6 +33,13 @@ namespace DmpWms @@ -33,6 +33,13 @@ namespace DmpWms
33 void writeGetCapabilities_3_0(const DmpServerContext &context, const DmpWmsParameters& params, 33 void writeGetCapabilities_3_0(const DmpServerContext &context, const DmpWmsParameters& params,
34 const DmpProject* project, 34 const DmpProject* project,
35 bool projectSettings = false); 35 bool projectSettings = false);
  36 + bool ApplendCoords(std::string& reponseString, std::string orgSrid);
  37 +
  38 + bool ApplendCoords(std::string& reponseString, std::string orgSrid,
  39 + double x1, double y1, double x2, double y2);
  40 +
  41 + bool ApplendCoord(std::string& reponseString, std::string orgSrid, std::string targetSrid,
  42 + double x1, double y1, double x2, double y2);
36 43
37 /** 44 /**
38 * Creates the WMS GetCapabilities XML document. 45 * Creates the WMS GetCapabilities XML document.
@@ -55,9 +62,9 @@ namespace DmpWms @@ -55,9 +62,9 @@ namespace DmpWms
55 void addCapabilitiesRequestNode2(boost::property_tree::ptree &pt, const std::string &hrefUrl, 62 void addCapabilitiesRequestNode2(boost::property_tree::ptree &pt, const std::string &hrefUrl,
56 const char* request,const std::vector<const char*>& formatList); 63 const char* request,const std::vector<const char*>& formatList);
57 64
58 - void addCapabilitiesLayers(boost::property_tree::ptree &pt,const DmpProject* project,std::string& name, std::string& title); 65 + void addCapabilitiesLayers(boost::property_tree::ptree &pt,const DmpProject* project,std::string& name, std::string& title, bool isVersion13);
59 66
60 - void addCapabilitiesLayer(boost::property_tree::ptree &pt,DmpMapLayer* layer,const std::string& srs); 67 + void addCapabilitiesLayer(boost::property_tree::ptree &pt,DmpMapLayer* layer,const std::string& srs, bool isVersion13);
61 68
62 void coordInvert(double& x1,double& y1,double& x2, double& y2); 69 void coordInvert(double& x1,double& y1,double& x2, double& y2);
63 } // namespace DmpWms 70 } // namespace DmpWms
@@ -10,6 +10,7 @@ @@ -10,6 +10,7 @@
10 #include "dmpwmsrenderer.h" 10 #include "dmpwmsrenderer.h"
11 #include "dmpserverresponse.h" 11 #include "dmpserverresponse.h"
12 #include "dmpserverrequest.h" 12 #include "dmpserverrequest.h"
  13 +#include "dmpcoordinatetransformation.h"
13 #include <map> 14 #include <map>
14 #include <memory> 15 #include <memory>
15 namespace DmpWms 16 namespace DmpWms
@@ -24,6 +25,7 @@ namespace DmpWms @@ -24,6 +25,7 @@ namespace DmpWms
24 { 25 {
25 context.response()->removeHeader("Content-Type"); 26 context.response()->removeHeader("Content-Type");
26 context.response()->setHeader("Content-Type", "text/json"); 27 context.response()->setHeader("Content-Type", "text/json");
  28 + exception = ("{\"result\":\"false\",\"exception\":\"" + exception + "\"}");
27 context.response()->writeJson(exception); 29 context.response()->writeJson(exception);
28 } 30 }
29 } 31 }
@@ -47,7 +49,7 @@ namespace DmpWms @@ -47,7 +49,7 @@ namespace DmpWms
47 StrDefs2Map(mapLayerDefs,layerDefs); 49 StrDefs2Map(mapLayerDefs,layerDefs);
48 StrDefs2Map(mapRegionDefs,regionDefs); 50 StrDefs2Map(mapRegionDefs,regionDefs);
49 std::string version = params.Version(); 51 std::string version = params.Version();
50 - if (!srs.empty()&& boost::iequals(version, "1.3.0")) 52 + if (boost::iequals(version, "1.3.0"))
51 { 53 {
52 sscanf(recbox.c_str(), "%lf,%lf,%lf,%lf", &boxY1, &boxX1, &boxY2, &boxX2); 54 sscanf(recbox.c_str(), "%lf,%lf,%lf,%lf", &boxY1, &boxX1, &boxY2, &boxX2);
53 } 55 }
@@ -75,8 +77,41 @@ namespace DmpWms @@ -75,8 +77,41 @@ namespace DmpWms
75 strcpy(strlayers,(char *)layers.c_str()); 77 strcpy(strlayers,(char *)layers.c_str());
76 mapRenderer.AddWmsMapLayers(project, strlayers); 78 mapRenderer.AddWmsMapLayers(project, strlayers);
77 } 79 }
  80 +
  81 + if(!srs.empty() && mapRenderer.m_vLayers.size()>0)
  82 + {
  83 + string projectsrid = mapRenderer.m_vLayers[0]->srid();
  84 + if(srs.find_first_of(":") != string::npos && !projectsrid.empty())
  85 + {
  86 + string srid = srs.substr(srs.find_first_of(":") + 1);
  87 + if(srid != projectsrid)
  88 + {
  89 + DmpCoordinateTransformation dmpTransformation(srid, projectsrid);
  90 + if(srid == "4326" || srid == "4490" || true)
  91 + {
  92 + if(dmpTransformation.Transform(1, &boxY1, &boxX1) <= 0 ||
  93 + dmpTransformation.Transform(1, &boxY2, &boxX2) <= 0)
  94 + {
  95 + return "坐标系转换失败";
  96 + }
  97 + }
  98 + else
  99 + {
  100 + if(dmpTransformation.Transform(1, &boxX1, &boxY1) <=0 ||
  101 + dmpTransformation.Transform(1, &boxX2, &boxY2) <= 0)
  102 + {
  103 + return "坐标系转换失败";
  104 + }
  105 + }
  106 + }
  107 + }
  108 + else
  109 + {
  110 + return "Srs坐标系不识别!!";
  111 + }
  112 + }
78 113
79 - 114 +
80 shared_ptr<Rect> rect (new Rect(boxY2, boxX2, boxY1, boxX1)); 115 shared_ptr<Rect> rect (new Rect(boxY2, boxX2, boxY1, boxX1));
81 mapRenderer.SetExtent(rect); 116 mapRenderer.SetExtent(rect);
82 mapRenderer.GetMap(&mapLayerDefs,&mapRegionDefs); 117 mapRenderer.GetMap(&mapLayerDefs,&mapRegionDefs);
@@ -158,7 +158,7 @@ namespace DmpWms @@ -158,7 +158,7 @@ namespace DmpWms
158 std::string DmpWmsParameters::layerDefs() const 158 std::string DmpWmsParameters::layerDefs() const
159 { 159 {
160 std::string value = ""; 160 std::string value = "";
161 - GetStringParameter("LAYERDDEFS",value); 161 + GetStringParameter("LAYERDEFS",value);
162 return value; 162 return value;
163 } 163 }
164 164
注册登录 后发表评论