diff options
| author | Nyall Dawson <nyall.dawson@gmail.com> | 2020-02-21 09:27:31 +1000 |
|---|---|---|
| committer | Kristian Evers <kristianevers@gmail.com> | 2020-02-21 11:26:55 +0100 |
| commit | 0bc2ae258dc928052719cc85b9f01957e4541fc5 (patch) | |
| tree | 9960df479659b54dc0b934a14caf7e28cde5d57f | |
| parent | dbe6dcf2479c92bfb268b632c245bd0fc3fb147e (diff) | |
| download | PROJ-0bc2ae258dc928052719cc85b9f01957e4541fc5.tar.gz PROJ-0bc2ae258dc928052719cc85b9f01957e4541fc5.zip | |
Add support for creating coordinates operations using Natural Earth/Natural Earth 2 projection
| -rw-r--r-- | include/proj/internal/coordinateoperation_constants.hpp | 6 | ||||
| -rw-r--r-- | include/proj/internal/esri_projection_mappings.hpp | 22 | ||||
| -rw-r--r-- | scripts/build_esri_projection_mapping.py | 14 | ||||
| -rw-r--r-- | src/proj_constants.h | 3 |
4 files changed, 43 insertions, 2 deletions
diff --git a/include/proj/internal/coordinateoperation_constants.hpp b/include/proj/internal/coordinateoperation_constants.hpp index 6b456610..c3ae77ee 100644 --- a/include/proj/internal/coordinateoperation_constants.hpp +++ b/include/proj/internal/coordinateoperation_constants.hpp @@ -697,6 +697,12 @@ static const MethodMapping projectionMethodMappings[] = { {PROJ_WKT2_NAME_METHOD_MOLLWEIDE, 0, "Mollweide", "moll", nullptr, paramsLonNatOrigin}, + {PROJ_WKT2_NAME_METHOD_NATURAL_EARTH, 0, "Natural_Earth", "natearth", + nullptr, paramsLonNatOrigin}, + + {PROJ_WKT2_NAME_METHOD_NATURAL_EARTH_II, 0, "Natural_Earth_II", "natearth2", + nullptr, paramsLonNatOrigin}, + {EPSG_NAME_METHOD_NZMG, EPSG_CODE_METHOD_NZMG, "New_Zealand_Map_Grid", "nzmg", nullptr, paramsNatOrigin}, diff --git a/include/proj/internal/esri_projection_mappings.hpp b/include/proj/internal/esri_projection_mappings.hpp index 1248a5fa..67e226ed 100644 --- a/include/proj/internal/esri_projection_mappings.hpp +++ b/include/proj/internal/esri_projection_mappings.hpp @@ -747,6 +747,24 @@ static const ESRIParamMapping paramsESRI_Wagner_VII[] = { EPSG_CODE_PARAMETER_LONGITUDE_OF_NATURAL_ORIGIN, 0.0}, {nullptr, nullptr, 0, 0.0}}; +static const ESRIParamMapping paramsESRI_Natural_Earth[] = { + {"False_Easting", EPSG_NAME_PARAMETER_FALSE_EASTING, + EPSG_CODE_PARAMETER_FALSE_EASTING, 0.0}, + {"False_Northing", EPSG_NAME_PARAMETER_FALSE_NORTHING, + EPSG_CODE_PARAMETER_FALSE_NORTHING, 0.0}, + {"Central_Meridian", EPSG_NAME_PARAMETER_LONGITUDE_OF_NATURAL_ORIGIN, + EPSG_CODE_PARAMETER_LONGITUDE_OF_NATURAL_ORIGIN, 0.0}, + {nullptr, nullptr, 0, 0.0}}; + +static const ESRIParamMapping paramsESRI_Natural_Earth_II[] = { + {"False_Easting", EPSG_NAME_PARAMETER_FALSE_EASTING, + EPSG_CODE_PARAMETER_FALSE_EASTING, 0.0}, + {"False_Northing", EPSG_NAME_PARAMETER_FALSE_NORTHING, + EPSG_CODE_PARAMETER_FALSE_NORTHING, 0.0}, + {"Central_Meridian", EPSG_NAME_PARAMETER_LONGITUDE_OF_NATURAL_ORIGIN, + EPSG_CODE_PARAMETER_LONGITUDE_OF_NATURAL_ORIGIN, 0.0}, + {nullptr, nullptr, 0, 0.0}}; + static const ESRIParamMapping paramsESRI_Patterson[] = { {"False_Easting", EPSG_NAME_PARAMETER_FALSE_EASTING, EPSG_CODE_PARAMETER_FALSE_EASTING, 0.0}, @@ -905,6 +923,10 @@ static const ESRIMethodMapping esriMappings[] = { {"Wagner_IV", PROJ_WKT2_NAME_METHOD_WAGNER_IV, 0, paramsESRI_Wagner_IV}, {"Wagner_V", PROJ_WKT2_NAME_METHOD_WAGNER_V, 0, paramsESRI_Wagner_V}, {"Wagner_VII", PROJ_WKT2_NAME_METHOD_WAGNER_VII, 0, paramsESRI_Wagner_VII}, + {"Natural_Earth", PROJ_WKT2_NAME_METHOD_NATURAL_EARTH, 0, + paramsESRI_Natural_Earth}, + {"Natural_Earth_II", PROJ_WKT2_NAME_METHOD_NATURAL_EARTH_II, 0, + paramsESRI_Natural_Earth_II}, {"Patterson", PROJ_WKT2_NAME_METHOD_PATTERSON, 0, paramsESRI_Patterson}, {"Geostationary_Satellite", PROJ_WKT2_NAME_METHOD_GEOSTATIONARY_SATELLITE_SWEEP_Y, 0, diff --git a/scripts/build_esri_projection_mapping.py b/scripts/build_esri_projection_mapping.py index 0722f7aa..9a3c90b6 100644 --- a/scripts/build_esri_projection_mapping.py +++ b/scripts/build_esri_projection_mapping.py @@ -593,9 +593,19 @@ config_str = """ - False_Northing: EPSG_NAME_PARAMETER_FALSE_NORTHING - Central_Meridian: EPSG_NAME_PARAMETER_LONGITUDE_OF_NATURAL_ORIGIN -# Natural_Earth: not handled +- Natural_Earth: + WKT2_name: PROJ_WKT2_NAME_METHOD_NATURAL_EARTH + Params: + - False_Easting: EPSG_NAME_PARAMETER_FALSE_EASTING + - False_Northing: EPSG_NAME_PARAMETER_FALSE_NORTHING + - Central_Meridian: EPSG_NAME_PARAMETER_LONGITUDE_OF_NATURAL_ORIGIN -# Natural_Earth_II: not handled +- Natural_Earth_II: + WKT2_name: PROJ_WKT2_NAME_METHOD_NATURAL_EARTH_II + Params: + - False_Easting: EPSG_NAME_PARAMETER_FALSE_EASTING + - False_Northing: EPSG_NAME_PARAMETER_FALSE_NORTHING + - Central_Meridian: EPSG_NAME_PARAMETER_LONGITUDE_OF_NATURAL_ORIGIN - Patterson: WKT2_name: PROJ_WKT2_NAME_METHOD_PATTERSON diff --git a/src/proj_constants.h b/src/proj_constants.h index f16f797f..b1059d89 100644 --- a/src/proj_constants.h +++ b/src/proj_constants.h @@ -167,6 +167,9 @@ #define PROJ_WKT2_NAME_METHOD_MOLLWEIDE "Mollweide" +#define PROJ_WKT2_NAME_METHOD_NATURAL_EARTH "Natural Earth" +#define PROJ_WKT2_NAME_METHOD_NATURAL_EARTH_II "Natural Earth II" + #define EPSG_NAME_METHOD_OBLIQUE_STEREOGRAPHIC "Oblique Stereographic" #define EPSG_CODE_METHOD_OBLIQUE_STEREOGRAPHIC 9809 |
