diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/c_api.cpp | 11 | ||||
| -rw-r--r-- | src/proj.h | 3 |
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; } @@ -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, |
