@@ -4521,6 +4521,10 @@ AuthorityFactory::createObject(const std::string &code) const {
45214521 return util::nn_static_pointer_cast<util::BaseObject>(
45224522 createProjectedCRS (code));
45234523 }
4524+ if (table_name == " derived_projected_crs" ) {
4525+ return util::nn_static_pointer_cast<util::BaseObject>(
4526+ createDerivedProjectedCRS (code));
4527+ }
45244528 if (table_name == " compound_crs" ) {
45254529 return util::nn_static_pointer_cast<util::BaseObject>(
45264530 createCompoundCRS (code));
@@ -9037,6 +9041,7 @@ std::list<AuthorityFactory::CRSInfo> AuthorityFactory::getCRSInfoList() const {
90379041 sql += " WHERE c.auth_name = ? " ;
90389042 params.emplace_back (d->authority ());
90399043 }
9044+ // FIXME: we can't handle non-EARTH compound CRS for now
90409045 sql += " UNION ALL SELECT c.auth_name, c.code, c.name, 'derived projected', "
90419046 " c.deprecated, "
90429047 " a.west_lon, a.south_lat, a.east_lon, a.north_lat, "
@@ -9382,10 +9387,10 @@ AuthorityFactory::createObjectsFromNameEx(
93829387 for (const auto &tableName :
93839388 {" prime_meridian" , " ellipsoid" , " geodetic_datum" ,
93849389 " vertical_datum" , " engineering_datum" , " geodetic_crs" ,
9385- " projected_crs" , " vertical_crs " , " compound_crs " ,
9386- " engineering_crs " , " conversion " , " helmert_transformation " ,
9387- " grid_transformation " , " other_transformation " ,
9388- " concatenated_operation" }) {
9390+ " projected_crs" , " derived_projected_crs " , " vertical_crs " ,
9391+ " compound_crs " , " engineering_crs " , " conversion " ,
9392+ " helmert_transformation " , " grid_transformation " ,
9393+ " other_transformation " , " concatenated_operation" }) {
93899394 if (!(startsWithDUnderscore &&
93909395 strcmp (tableName, " vertical_datum" ) == 0 )) {
93919396 res.emplace_back (TableType (tableName, std::string ()));
@@ -9438,6 +9443,8 @@ AuthorityFactory::createObjectsFromNameEx(
94389443 res.emplace_back (TableType (" compound_crs" , std::string ()));
94399444 res.emplace_back (
94409445 TableType (" engineering_crs" , std::string ()));
9446+ res.emplace_back (
9447+ TableType (" derived_projected_crs" , std::string ()));
94419448 break ;
94429449 case ObjectType::GEODETIC_CRS :
94439450 res.emplace_back (TableType (" geodetic_crs" , std::string ()));
@@ -9458,6 +9465,10 @@ AuthorityFactory::createObjectsFromNameEx(
94589465 case ObjectType::PROJECTED_CRS :
94599466 res.emplace_back (TableType (" projected_crs" , std::string ()));
94609467 break ;
9468+ case ObjectType::DERIVED_PROJECTED_CRS :
9469+ res.emplace_back (
9470+ TableType (" derived_projected_crs" , std::string ()));
9471+ break ;
94619472 case ObjectType::VERTICAL_CRS :
94629473 res.emplace_back (TableType (" vertical_crs" , std::string ()));
94639474 break ;
0 commit comments