# 2.10.5. CITYDB_SRS¶

The package CITYDB_SRS provides functions and procedures dealing with the coordinate reference system used for an 3D City Database instance. The most essential procedure is change_schema_srid to change the reference system for all spatial columns within a database schema. If a coordinate transformation is needed because an alternative reference system shall be used, the value ‘1’ should be passed to the procedure as the third parameter. If a wrong SRID had been chosen by mistake during setup, a coordinate transformation might not be necessary in case the coordinate values of the city objects are already matching the new reference system. Thus, the value 0 should be provided to the procedure, which then only changes the spatial metadata to reflect the new reference system. It can also be omitted, as 0 is the default value for the procedure. Either way, changing the CRS will drop and recreate the spatial index for the affected column. Therefore, this operation can take a lot of time depending on the size of the table. Note that in Oracle, the reference system cannot be changed for another user schema. So, there is no schema_name parameter. The is also an additional function called get_dim(column_name, table_name, schema_name) to fetch the dimension of the spatial column which is either 2 or 3.

 Function Return Type Explanation change_column_srid (table_name, column_name, dimension, srid, do_transform, geometry_type, schema_name) void Changes the reference system for a given geometry column. Spatial metadata is needed to recreate the spatial index. change_schema_srid (srid, gml_srs_name, do_transform, schema_name) void Changes the reference system for all spatial columns inside a database schema. The second parameter needs to be a GML-compliant URN to the CRS (see Section 2.8) check_srid (srid) TEXT Returns the message ‘SRID ok’ if the CRS with the given EPSG code exists in the database. Returns ‘SRID not ok’ if not. is_coord_ref_sys_3d (srid) INTEGER Tests if CRS with given EPSG code is a 3D CRS. Returns 1 if yes and 0 if not. is_db_coord_ref_sys_3d (schema_name) INTEGER Tests if the current CRS of a given schema is a 3D one. Returns 1 if yes and 0 if not. transform_or_null (GEOMETRY, srid) GEOMETRY Applies a coordinate transformation on the input geometry with the given CRS. Returns NULL, if the input geometry is not set.