diff options
| -rw-r--r-- | include/proj/internal/coordinateoperation_constants.hpp | 3 | ||||
| -rw-r--r-- | include/proj/internal/esri_projection_mappings.hpp | 18 | ||||
| -rw-r--r-- | scripts/build_esri_projection_mapping.py | 12 | ||||
| -rw-r--r-- | src/proj_constants.h | 3 | ||||
| -rw-r--r-- | test/unit/test_io.cpp | 19 |
5 files changed, 49 insertions, 6 deletions
diff --git a/include/proj/internal/coordinateoperation_constants.hpp b/include/proj/internal/coordinateoperation_constants.hpp index f3291272..53213424 100644 --- a/include/proj/internal/coordinateoperation_constants.hpp +++ b/include/proj/internal/coordinateoperation_constants.hpp @@ -640,6 +640,9 @@ static const MethodMapping projectionMethodMappings[] = { {PROJ_WKT2_NAME_METHOD_INTERRUPTED_GOODE_HOMOLOSINE, 0, "Interrupted_Goode_Homolosine", "igh", nullptr, paramsLonNatOrigin}, + {PROJ_WKT2_NAME_METHOD_INTERRUPTED_GOODE_HOMOLOSINE_OCEAN, 0, nullptr, + "igh_o", nullptr, paramsLonNatOrigin}, + // No proper WKT1 representation fr sweep=x {PROJ_WKT2_NAME_METHOD_GEOSTATIONARY_SATELLITE_SWEEP_X, 0, nullptr, "geos", "sweep=x", paramsGeos}, diff --git a/include/proj/internal/esri_projection_mappings.hpp b/include/proj/internal/esri_projection_mappings.hpp index 95cd6335..752c03ad 100644 --- a/include/proj/internal/esri_projection_mappings.hpp +++ b/include/proj/internal/esri_projection_mappings.hpp @@ -728,13 +728,23 @@ static const ESRIParamMapping paramsESRI_Rectified_Skew_Orthomorphic_Center[] = EPSG_CODE_PARAMETER_ANGLE_RECTIFIED_TO_SKEW_GRID, "0.0", false}, {nullptr, nullptr, 0, "0.0", false}}; -static const ESRIParamMapping paramsESRI_Goode_Homolosine[] = { +static const ESRIParamMapping paramsESRI_Goode_Homolosine_alt1[] = { {"False_Easting", EPSG_NAME_PARAMETER_FALSE_EASTING, EPSG_CODE_PARAMETER_FALSE_EASTING, "0.0", false}, {"False_Northing", EPSG_NAME_PARAMETER_FALSE_NORTHING, EPSG_CODE_PARAMETER_FALSE_NORTHING, "0.0", false}, {"Central_Meridian", EPSG_NAME_PARAMETER_LONGITUDE_OF_NATURAL_ORIGIN, EPSG_CODE_PARAMETER_LONGITUDE_OF_NATURAL_ORIGIN, "0.0", false}, + {"Option", nullptr, 0, "1.0", false}, + {nullptr, nullptr, 0, "0.0", false}}; +static const ESRIParamMapping paramsESRI_Goode_Homolosine_alt2[] = { + {"False_Easting", EPSG_NAME_PARAMETER_FALSE_EASTING, + EPSG_CODE_PARAMETER_FALSE_EASTING, "0.0", false}, + {"False_Northing", EPSG_NAME_PARAMETER_FALSE_NORTHING, + EPSG_CODE_PARAMETER_FALSE_NORTHING, "0.0", false}, + {"Central_Meridian", EPSG_NAME_PARAMETER_LONGITUDE_OF_NATURAL_ORIGIN, + EPSG_CODE_PARAMETER_LONGITUDE_OF_NATURAL_ORIGIN, "0.0", false}, + {"Option", nullptr, 0, "2.0", false}, {nullptr, nullptr, 0, "0.0", false}}; static const ESRIParamMapping paramsESRI_Equidistant_Cylindrical_Ellipsoidal[] = @@ -1020,7 +1030,11 @@ static const ESRIMethodMapping esriMappings[] = { EPSG_NAME_METHOD_HOTINE_OBLIQUE_MERCATOR_VARIANT_B, EPSG_CODE_METHOD_HOTINE_OBLIQUE_MERCATOR_VARIANT_B, paramsESRI_Rectified_Skew_Orthomorphic_Center}, - {"Goode_Homolosine", "Goode Homolosine", 0, paramsESRI_Goode_Homolosine}, + {"Goode_Homolosine", PROJ_WKT2_NAME_METHOD_INTERRUPTED_GOODE_HOMOLOSINE, 0, + paramsESRI_Goode_Homolosine_alt1}, + {"Goode_Homolosine", + PROJ_WKT2_NAME_METHOD_INTERRUPTED_GOODE_HOMOLOSINE_OCEAN, 0, + paramsESRI_Goode_Homolosine_alt2}, {"Equidistant_Cylindrical_Ellipsoidal", EPSG_NAME_METHOD_EQUIDISTANT_CYLINDRICAL, EPSG_CODE_METHOD_EQUIDISTANT_CYLINDRICAL, diff --git a/scripts/build_esri_projection_mapping.py b/scripts/build_esri_projection_mapping.py index 220f105f..5206e191 100644 --- a/scripts/build_esri_projection_mapping.py +++ b/scripts/build_esri_projection_mapping.py @@ -541,11 +541,19 @@ config_str = """ - XY_Plane_Rotation: EPSG_NAME_PARAMETER_ANGLE_RECTIFIED_TO_SKEW_GRID - Goode_Homolosine: - WKT2_name: "Goode Homolosine" - Params: + - WKT2_name: PROJ_WKT2_NAME_METHOD_INTERRUPTED_GOODE_HOMOLOSINE + Params: + - False_Easting: EPSG_NAME_PARAMETER_FALSE_EASTING + - False_Northing: EPSG_NAME_PARAMETER_FALSE_NORTHING + - Central_Meridian: EPSG_NAME_PARAMETER_LONGITUDE_OF_NATURAL_ORIGIN + - Option: 1.0 + + - WKT2_name: PROJ_WKT2_NAME_METHOD_INTERRUPTED_GOODE_HOMOLOSINE_OCEAN + Params: - False_Easting: EPSG_NAME_PARAMETER_FALSE_EASTING - False_Northing: EPSG_NAME_PARAMETER_FALSE_NORTHING - Central_Meridian: EPSG_NAME_PARAMETER_LONGITUDE_OF_NATURAL_ORIGIN + - Option: 2.0 - Equidistant_Cylindrical_Ellipsoidal: WKT2_name: EPSG_NAME_METHOD_EQUIDISTANT_CYLINDRICAL diff --git a/src/proj_constants.h b/src/proj_constants.h index fa308862..5b626223 100644 --- a/src/proj_constants.h +++ b/src/proj_constants.h @@ -118,6 +118,9 @@ #define PROJ_WKT2_NAME_METHOD_INTERRUPTED_GOODE_HOMOLOSINE \ "Interrupted Goode Homolosine" +#define PROJ_WKT2_NAME_METHOD_INTERRUPTED_GOODE_HOMOLOSINE_OCEAN \ + "Interrupted Goode Homolosine Ocean" + #define PROJ_WKT2_NAME_METHOD_GEOSTATIONARY_SATELLITE_SWEEP_X \ "Geostationary Satellite (Sweep X)" diff --git a/test/unit/test_io.cpp b/test/unit/test_io.cpp index 17fddaaf..ddef0833 100644 --- a/test/unit/test_io.cpp +++ b/test/unit/test_io.cpp @@ -5326,8 +5326,23 @@ static const struct { }}, {"Goode_Homolosine", - {{"False_Easting", 1}, {"False_Northing", 2}, {"Central_Meridian", 3}}, - "Goode Homolosine", + {{"False_Easting", 1}, + {"False_Northing", 2}, + {"Central_Meridian", 3}, + {"Option", 1.0}}, + "Interrupted Goode Homolosine", + { + {"Longitude of natural origin", 3}, + {"False easting", 1}, + {"False northing", 2}, + }}, + + {"Goode_Homolosine", + {{"False_Easting", 1}, + {"False_Northing", 2}, + {"Central_Meridian", 3}, + {"Option", 2.0}}, + "Interrupted Goode Homolosine Ocean", { {"Longitude of natural origin", 3}, {"False easting", 1}, |
