Greetings all!!

I am a new Geoserver user, my current installed version is *2.1.3, Subversion Revision 16668, Build Date 21-Dec-2011 11:55, GeoTools Version 2.7.4 (rev 38443).*

I’ve been creating new layers from a store connected to a Postgres SQL database but I have a really big problem related to the layers’ coordinate system that I can’t resolve. I’m using a custom coordinate system based in a Local Cartesian Coordinate system defined for Cali – Colombia. The system’s parameters are described as follows:

PROJCS[“PCS_Cali_San_Antonio”,

GEOGCS[“CGS_CartCali”,

DATUM[“<Internacional_1924_modificado_plano_proyeccion_1000m>”,

SPHEROID[“<Internacional_1924_modificado_plano_proyeccion_1000m>”, 6379388.0, 297.0],

**TOWGS84[-0.562, 244.3, -456.94, 6.866871, -8.2526735, -9.2967797, 3.74656]],**

PRIMEM[“Greenwich”, 0.0],

UNIT[“degree”, 0.017453292519943295],

AXIS[“Longitude”, EAST],

AXIS[“Latitude”, NORTH]],

PROJECTION[“Transverse_Mercator”],

PARAMETER[“central_meridian”, -76.54705222222222],

PARAMETER[“latitude_of_origin”, 3.4495919444444403],

PARAMETER[“scale_factor”, 1.0],

PARAMETER[“false_easting”, 110000.0],

PARAMETER[“false_northing”, 110000.0],

UNIT[“m”, 1.0],

AXIS[“x”, EAST],

AXIS[“y”, NORTH],

AUTHORITY[“EPSG”,“97421”]]

This coordinate system is based in the “Hayford ellipsoid” or “International 1924 ellipsoid” with the plane of projection added (1000 meters, this is Cali’s average height above sea level).

These parameters were defined by the national geographic entity in Colombia, called “Instituto Geográfico Agustín Codazzi - IGAC” and are based in MAGNA SIRGAS the official reference frame for Colombia. These parameters were designed to be used in a geographic transformation from both coordinate systems to WGS 1984 using the Coordinate Frame Method.

So, according to the above, I’ve created the custom coordinate system in both Geoserver and Postgres SQL database, and geoserver does not have any problem recognizing it. The problem is when Geoserver is trying to do the geographic transformation; as a result, the projected layer is located in the wrong place.

I’ve been trying to solve the problem and I’ve found (using the latest Geoserver’s Reprojection console included in version 2.2-beta1) that Geoserver does not recognize the geographic transformation parameter as I would like it to. According to the Reprojection console, Geoserver applies the parameters and chooses the geographic transformation method as follows:

CONCAT_MT[INVERSE_MT[PARAM_MT[“Transverse_Mercator”,

PARAMETER[“semi_major”, 6379388.0],

PARAMETER[“semi_minor”, 6357908.579124579],

PARAMETER[“central_meridian”, -76.54705222222222],

PARAMETER[“latitude_of_origin”, 3.4495919444444403],

PARAMETER[“scale_factor”, 1.0],

PARAMETER[“false_easting”, 110000.0],

PARAMETER[“false_northing”, 110000.0]]],

PARAM_MT[“Ellipsoid_To_Geocentric”,

PARAMETER[“dim”, 2],

PARAMETER[“semi_major”, 6379388.0],

PARAMETER[“semi_minor”, 6357908.579124579]],

PARAM_MT[“Affine”,

PARAMETER[“num_row”, 4],

PARAMETER[“num_col”, 4],

PARAMETER[“elt_0_0”, 1.00000374656],

PARAMETER[“elt_0_1”, 0.00004507222875339077],

PARAMETER[“elt_0_2”, -0.00004001024008550467],

PARAMETER[“elt_0_3”, -0.562],

PARAMETER[“elt_1_0”, -0.00004507222875339077],

PARAMETER[“elt_1_1”, 1.00000374656],

PARAMETER[“elt_1_2”, -0.00003329165480085811],

PARAMETER[“elt_1_3”, 244.3],

PARAMETER[“elt_2_0”, 0.00004001024008550467],

PARAMETER[“elt_2_1”, 0.00003329165480085811],

PARAMETER[“elt_2_2”, 1.00000374656],

PARAMETER[“elt_2_3”, -456.94]],

PARAM_MT[“Geocentric_To_Ellipsoid”,

PARAMETER[“dim”, 2],

PARAMETER[“semi_major”, 6378137.0],

PARAMETER[“semi_minor”, 6356752.314245179]]]

But I would like geoserver to apply the parameters and chooses the Coordinate Frame geographic transformation method.

Note: An example of what I would like to do is done by Geoserver when I use the reprojection console between CRS EPSG:21891 and EPSG:4326 , this example is shown as follows:

CONCAT_MT[INVERSE_MT[PARAM_MT[“Transverse_Mercator”,

```
PARAMETER["semi_major", 6378388.0],
PARAMETER["semi_minor", 6356911.9461279465],
PARAMETER["central_meridian", -77.08091666666668],
PARAMETER["latitude_of_origin", 4.599047222222223],
PARAMETER["scale_factor", 1.0],
PARAMETER["false_easting", 1000000.0],
PARAMETER["false_northing", 1000000.0]]],
PARAM_MT["Ellipsoid_To_Geocentric",
PARAMETER["dim", 2],
PARAMETER["semi_major", 6378388.0],
PARAMETER["semi_minor", 6356911.9461279465]],
PARAM_MT["Coordinate Frame Rotation (geog2D domain)",
PARAMETER["dx", 221.899],
PARAMETER["dy", 274.136],
PARAMETER["dz", -397.554],
PARAMETER["ex", 2.8084459103627775],
PARAMETER["ey", -0.4485085889126801],
PARAMETER["ez", -2.8101723467910658],
PARAMETER["ppm", -2.1999429998809106]],
PARAM_MT["Geocentric_To_Ellipsoid",
PARAMETER["dim", 2],
PARAMETER["semi_major", 6378137.0],
PARAMETER["semi_minor", 6356752.314140356]],
PARAM_MT["Transverse_Mercator",
PARAMETER["semi_major", 6378137.0],
PARAMETER["semi_minor", 6356752.314140356],
PARAMETER["central_meridian", -77.07750791666665],
PARAMETER["latitude_of_origin", 4.596200416666665],
PARAMETER["scale_factor", 1.0],
PARAMETER["false_easting", 1000000.0],
PARAMETER["false_northing", 1000000.0]]]
```

Finally, according to the above, is there any possibility to reconfigure the way that Geoserver assigns the geographic transformation? Could anybody tell me how I can do it?

Thanks for any help

Julian Londoño

Éxitos!

–

Ing. Julián Esteban Londoño Vélez

Analista SIG

Cali - Colombia