aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/c_api.cpp11
-rw-r--r--src/proj.h3
2 files changed, 14 insertions, 0 deletions
diff --git a/src/c_api.cpp b/src/c_api.cpp
index a1eaf1e7..105b4dd2 100644
--- a/src/c_api.cpp
+++ b/src/c_api.cpp
@@ -499,6 +499,9 @@ PJ_OBJ *proj_obj_create_from_database(PJ_CONTEXT *ctx, const char *auth_name,
case PJ_OBJ_CATEGORY_ELLIPSOID:
obj = factory->createEllipsoid(codeStr).as_nullable();
break;
+ case PJ_OBJ_CATEGORY_PRIME_MERIDIAN:
+ obj = factory->createPrimeMeridian(codeStr).as_nullable();
+ break;
case PJ_OBJ_CATEGORY_DATUM:
obj = factory->createDatum(codeStr).as_nullable();
break;
@@ -579,6 +582,10 @@ convertPJObjectTypeToObjectType(PJ_OBJ_TYPE type, bool &valid) {
cppType = AuthorityFactory::ObjectType::ELLIPSOID;
break;
+ case PJ_OBJ_TYPE_PRIME_MERIDIAN:
+ cppType = AuthorityFactory::ObjectType::PRIME_MERIDIAN;
+ break;
+
case PJ_OBJ_TYPE_GEODETIC_REFERENCE_FRAME:
case PJ_OBJ_TYPE_DYNAMIC_GEODETIC_REFERENCE_FRAME:
cppType = AuthorityFactory::ObjectType::GEODETIC_REFERENCE_FRAME;
@@ -737,6 +744,10 @@ PJ_OBJ_TYPE proj_obj_get_type(const PJ_OBJ *obj) {
return PJ_OBJ_TYPE_ELLIPSOID;
}
+ if (dynamic_cast<PrimeMeridian *>(ptr)) {
+ return PJ_OBJ_TYPE_PRIME_MERIDIAN;
+ }
+
if (dynamic_cast<DynamicGeodeticReferenceFrame *>(ptr)) {
return PJ_OBJ_TYPE_DYNAMIC_GEODETIC_REFERENCE_FRAME;
}
diff --git a/src/proj.h b/src/proj.h
index d8b7bf4b..d07a2b96 100644
--- a/src/proj.h
+++ b/src/proj.h
@@ -504,6 +504,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_from_proj_string(PJ_CONTEXT *ctx,
typedef enum
{
PJ_OBJ_CATEGORY_ELLIPSOID,
+ PJ_OBJ_CATEGORY_PRIME_MERIDIAN,
PJ_OBJ_CATEGORY_DATUM,
PJ_OBJ_CATEGORY_CRS,
PJ_OBJ_CATEGORY_COORDINATE_OPERATION
@@ -527,6 +528,8 @@ typedef enum
PJ_OBJ_TYPE_ELLIPSOID,
+ PJ_OBJ_TYPE_PRIME_MERIDIAN,
+
PJ_OBJ_TYPE_GEODETIC_REFERENCE_FRAME,
PJ_OBJ_TYPE_DYNAMIC_GEODETIC_REFERENCE_FRAME,
PJ_OBJ_TYPE_VERTICAL_REFERENCE_FRAME,