@@ -190,15 +190,20 @@ class Projection {
190190 */
191191 private static CoordinateReferenceSystem parse (String str ) {
192192 CoordinateReferenceSystem crs
193- try {
194- crs = CRS . decode( str)
193+ if (wellKnownProjections . containsKey(str)) {
194+ crs = CRS . parseWKT(wellKnownProjections[ str] )
195195 }
196- catch ( Exception ex1) {
196+ else {
197197 try {
198- crs = CRS . parseWKT (str)
198+ crs = CRS . decode (str)
199199 }
200- catch (Exception ex2) {
201- throw new Exception (" Unable to determine projection from ${ str} !" )
200+ catch (Exception ex1) {
201+ try {
202+ crs = CRS . parseWKT(str)
203+ }
204+ catch (Exception ex2) {
205+ throw new Exception (" Unable to determine projection from ${ str} !" )
206+ }
202207 }
203208 }
204209 crs
@@ -245,4 +250,27 @@ class Projection {
245250 }
246251 projections
247252 }
253+
254+ /**
255+ * A Map (name:wkt) of Well Known Projections
256+ */
257+ private static final Map wellKnownProjections = [
258+ " WGS84" : ' GEOGCS["WGS84", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree",0.017453292519943295], AXIS["Longitude",EAST], AXIS["Latitude",NORTH]]' ,
259+ " Aitoff" : ' PROJCS["Aitoff", GEOGCS["WGS84", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree",0.017453292519943295], AXIS["Longitude",EAST], AXIS["Latitude",NORTH]], PROJECTION["Aitoff"], UNIT["m", 1.0], AXIS["Easting", EAST], AXIS["Northing", NORTH]]' ,
260+ " AlbersEqualArea" : ' PROJCS["Albers", GEOGCS["WGS84", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree",0.017453292519943295], AXIS["Longitude",EAST], AXIS["Latitude",NORTH]], PROJECTION["Albers_Conic_Equal_Area"], PARAMETER["central_meridian", -88.0], PARAMETER["latitude_of_origin", 14.5], PARAMETER["false_easting", 328.08333333], PARAMETER["false_northing", 192109.19583333], UNIT["feet", 0.304800609601219], PARAMETER["standard_parallel_1", -20.0], PARAMETER["standard_parallel_2", -33.0], AXIS["x",EAST], AXIS["y",NORTH]]' ,
261+ " Cassini" : ' PROJCS["Cassini_Soldner", GEOGCS["WGS84", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree",0.017453292519943295], AXIS["Longitude",EAST], AXIS["Latitude",NORTH]], PROJECTION["Cassini_Soldner"], UNIT["m", 1.0], AXIS["Easting", EAST], AXIS["Northing", NORTH]]' ,
262+ " EckertIV" : ' PROJCS["Eckert_IV", GEOGCS["WGS84", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree",0.017453292519943295], AXIS["Longitude",EAST], AXIS["Latitude",NORTH]], PROJECTION["Eckert_IV"], UNIT["m", 1.0], AXIS["Easting", EAST], AXIS["Northing", NORTH]]' ,
263+ " EquidistantConic" : ' PROJCS["World_Equidistant_Conic", GEOGCS["WGS84", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree",0.017453292519943295], AXIS["Longitude",EAST], AXIS["Latitude",NORTH]] ,PROJECTION["Equidistant_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",60.0],PARAMETER["Standard_Parallel_2",60.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]' ,
264+ " LambertConfic" : ' PROJCS["Lambert", GEOGCS["WGS84", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree",0.017453292519943295], AXIS["Longitude",EAST], AXIS["Latitude",NORTH]], PROJECTION["Lambert_Conformal_Conic_1SP"], PARAMETER["central_meridian", -50.0], PARAMETER["latitude_of_origin", 30.0], PARAMETER["scale_factor", 1.0], PARAMETER["false_easting", 0.0], PARAMETER["false_northing", 0.0], UNIT["metre",1.0], AXIS["x",EAST], AXIS["y",NORTH]]' ,
265+ " Mercator" : ' PROJCS["WGS 84 / Pseudo-Mercator", GEOGCS["WGS 84", DATUM["World Geodetic System 1984", SPHEROID["WGS 84", 6378137.0, 298.257223563, AUTHORITY["EPSG","7030"]], AUTHORITY["EPSG","6326"]], PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH], AUTHORITY["EPSG","4326"]], PROJECTION["Popular Visualisation Pseudo Mercator", AUTHORITY["EPSG","1024"]], PARAMETER["semi-minor axis", 6378137.0], PARAMETER["Latitude of false origin", 0.0], PARAMETER["Longitude of natural origin", 0.0], PARAMETER["Scale factor at natural origin", 1.0], PARAMETER["False easting", 0.0], PARAMETER["False northing", 0.0], UNIT["m", 1.0], AXIS["Easting", EAST], AXIS["Northing", NORTH], AUTHORITY["EPSG","3857"]]' ,
266+ " Mollweide" : ' PROJCS["Mollweide", GEOGCS["WGS84", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree",0.017453292519943295], AXIS["Longitude",EAST], AXIS["Latitude",NORTH]], PROJECTION["Mollweide"], UNIT["m", 1.0], AXIS["Easting", EAST], AXIS["Northing", NORTH]]' ,
267+ " NAD27" : ' GEOGCS["NAD27", DATUM["North American Datum 1927", SPHEROID["Clarke 1866", 6378206.4, 294.9786982138982, AUTHORITY["EPSG","7008"]], TOWGS84[2.478, 149.752, 197.726, 0.526, -0.498, 0.501, 0.685], AUTHORITY["EPSG","6267"]], PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH], AUTHORITY["EPSG","4267"]]' ,
268+ " NAD83" : ' GEOGCS["NAD83", DATUM["North American Datum 1983", SPHEROID["GRS 1980", 6378137.0, 298.257222101, AUTHORITY["EPSG","7019"]], TOWGS84[0.0, 0.0, 0.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"]]' ,
269+ " Robinson" : ' PROJCS["Robinson", GEOGCS["WGS84", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree",0.017453292519943295], AXIS["Longitude",EAST], AXIS["Latitude",NORTH]], PROJECTION["Robinson"], UNIT["m", 1.0], AXIS["Easting", EAST], AXIS["Northing", NORTH]]' ,
270+ " Sinusoidal" : ' PROJCS["MODIS Sinusoidal",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563 ] ], PRIMEM["Greenwich",0.0], UNIT["degree",0.01745329251994328 ]],PROJECTION["Sinusoidal"],UNIT["m",1.0] ]' ,
271+ " WagnerIV" : ' PROJCS["Wagner_IV", GEOGCS["WGS84", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree",0.017453292519943295], AXIS["Longitude",EAST], AXIS["Latitude",NORTH]], PROJECTION["Wagner_IV"], UNIT["m", 1.0], AXIS["Easting", EAST], AXIS["Northing", NORTH]]' ,
272+ // "WagnerV": 'PROJCS["Wagner_V", GEOGCS["WGS84", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree",0.017453292519943295], AXIS["Longitude",EAST], AXIS["Latitude",NORTH]], PROJECTION["Wagner_V"], UNIT["m", 1.0], AXIS["Easting", EAST], AXIS["Northing", NORTH]]',
273+ " WinkeTripel" : ' PROJCS["WinkeTripel", GEOGCS["WGS84", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree",0.017453292519943295], AXIS["Longitude",EAST], AXIS["Latitude",NORTH]], PROJECTION["Winkel Tripel"], UNIT["m", 1.0], AXIS["Easting", EAST], AXIS["Northing", NORTH]]' ,
274+ " WorldVanderGrintenI" : ' PROJCS["World_Van_der_Grinten_I",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Van_der_Grinten_I"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1]]'
275+ ]
248276}
0 commit comments