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

Reply via email to