I've got a problem, and I'd love to know if anyone else has dealt with
something like this.
1) When you ask for SHAPE-ZIP output from geoserver, it adds a .prj file,
containing the WKT of the exported data.
2) ArcSDE gives non-numbered WKTs for its data. Geoserver requires that you
provide a numbered EPSG code for your data.
3) The ArcSDE wkt for Mass state plane meters (EPSG:26986) is this:
PROJCS["NAD_1983_StatePlane_Massachusetts_Mainland_FIPS_2001",
GEOGCS["GCS_North_American_1983",
DATUM["D_North_American_1983",
SPHEROID["GRS_1980", 6378137.0, 298.257222101]],
PRIMEM["Greenwich", 0.0],
UNIT["degree", 0.017453292519943295],
AXIS["Longitude", EAST],
AXIS["Latitude", NORTH]],
PROJECTION["Lambert_Conformal_Conic"],
PARAMETER["central_meridian", -71.5],
PARAMETER["latitude_of_origin", 41.0],
PARAMETER["standard_parallel_1", 41.71666666666667],
PARAMETER["scale_factor", 1.0],
PARAMETER["false_easting", 200000.0],
PARAMETER["false_northing", 750000.0],
PARAMETER["standard_parallel_2", 42.68333333333334],
UNIT["m", 1.0],
AXIS["x", EAST],
AXIS["y", NORTH]]
while the EPSG retreived code for 26986 is this:
PROJCS["NAD83 / Massachusetts Mainland",
GEOGCS["NAD83",
DATUM["North American Datum 1983",
SPHEROID["GRS 1980", 6378137.0, 298.257222101, AUTHORITY["EPSG","7019"]],
TOWGS84[1.0, 1.0, -1.0, 0.0, 0.0, 0.0, 0.0],
AUTHORITY["EPSG","6269"]],
PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]],
UNIT["degree", 0.017453292519943295],
AXIS["Geodetic longitude", EAST],
AXIS["Geodetic latitude", NORTH],
AUTHORITY["EPSG","4269"]],
PROJECTION["Lambert Conic Conformal (2SP)", AUTHORITY["EPSG","9802"]],
PARAMETER["central_meridian", -71.5],
PARAMETER["latitude_of_origin", 41.0],
PARAMETER["standard_parallel_1", 42.68333333333334],
PARAMETER["false_easting", 200000.0],
PARAMETER["false_northing", 750000.0],
PARAMETER["standard_parallel_2", 41.71666666666667],
UNIT["m", 1.0],
AXIS["Easting", EAST],
AXIS["Northing", NORTH],
AUTHORITY["EPSG","26986"]]
4) Since these two CRSs are different (equalsIgnoreMetadata() return false)
geoserver wraps a ReprojectFeatureReader around the source features,
reprojecting them to the EPSG-returned crs.
5) ArcMap just *won't* deal with the EPSG-returned WKT. It likes the ArcSDE
returned CRS, but just can't hang with the EPSG-returned one.
6) Since the featurecollection I'm returning is wrapped in the reprojecting
feature-reader, I wind up providing a .prj file with the (perfectly correct!)
EPSG-returned WKT, which ArcMap just won't read.
So *why* are these two WKT's not equal? Well, I can see that the
standard_parallel_1 and 2 are 'inverted' (switched?) between the two...is that
the cause? When I stepped through the code with a debugger, I found that the
'equalsIgnoreMetadata' seemed to bail on the AXIS["Easting" vs AXIS["x"
difference.
So my question is: Should those two CRS's be equalsIgnoreMetadata()? And if
they're not, is it the AXIS that's the culprit, or is it the
standard_parallel1/2? And if they *are* different, which one is the correct
one (for 26986)?
Is it at all possible that the EPSG database has a bug in it that has inverted
the _1 and _2 standard_parallels?
Thanks much,
--saul
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel