You can use something like (from https://docs.geotools.org/stable/userguide/library/referencing/crs.html#matching-a-coordinatereferencesystem ):
CoordinateReferenceSystem crs = CRS.decode("EPSG:32735"); Formattable f = (Formattable) CRS.decode("EPSG:32735", true); String wkt = f.toWKT(Citations.ESRI, 2); // use 0 indent for single line System.out.println("wkt for EPSG:32735 (ESRI)"); System.out.println(wkt); To produce a more ESRI friendly WKT in your .prj file. I thought there was a flag you could pass to the ShapefileWriter to set that up but I can't see it on a quick look. Alternatively, you could open a bug report with ESRI asking them to support the standard better. Ian On Wed, 10 Jul 2019 at 10:38, <paul.m...@lfv.se> wrote: > Hi, > > when I export a Postgis table to a shape file and the try to import it > into Arc Gis, I will always have to reproject the file from eg Wgs84(4326) > to Wgs84(4326) at the import stage. It seems that Arc Gis don’t understand > that the prj file describes the wgs84 projection, but funny enough ArcGis > understands it when it should project the file! ArcGis prj file is not the > same as my prj file, but the result of the description in the prj files is > the same. > > The result when importing the wgs84 shape file is still correct when it is > imported and projected to wgs84. > > > > It is really annoying to have to reproject to the same projection when > importing to ArcGis. > > Is there anyone who has an solution for this? > > I’m using the following example code: > > *private* *void* exportLayer(String layerName, File directory) *throws* > IOException { > > SimpleFeatureSource featureSource = MainDialog.*getDataStore* > ().getFeatureSource(layerName); > > SimpleFeatureType ft = featureSource.getSchema(); > > String fileName = ft.getTypeName(); > > File file = *new* File(directory, fileName + ".shp"); > > Map<String, java.io.Serializable> creationParams = *new* > HashMap<>(); > > creationParams.put("url", URLs.*fileToUrl*(file)); > > FileDataStoreFactorySpi factory = FileDataStoreFinder. > *getDataStoreFactory*("shp"); > > DataStore dataStore = factory.createNewDataStore( > creationParams); > > dataStore.createSchema(ft); > > // The following workaround to write out the *prj* is no > longer needed > > // > ((ShapefileDataStore)dataStore).forceSchemaCRS(ft.getCoordinateReferenceSystem()); > > > > SimpleFeatureStore featureStore = (SimpleFeatureStore) > dataStore.getFeatureSource(layerName); > > > > Transaction t = *new* DefaultTransaction(); > > *try* { > > SimpleFeatureCollection collection = > featureSource.getFeatures(); // grab all features > > featureStore.addFeatures(collection); > > t.commit(); // write it out > > } *catch* (IOException eek) { > > JOptionPane.*showMessageDialog*(*null*, eek > .toString()); > > eek.printStackTrace(); > > *try* { > > t.rollback(); > > } *catch* (IOException doubleEeek) { > > // *rollback* failed? > > } > > } *finally* { > > t.close(); > > } > > MainDialog.*removeDataStore*(); > > } > > > > > > Kind regars, > > Paul > > > _______________________________________________ > GeoTools-GT2-Users mailing list > GeoTools-GT2-Users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users > -- Ian Turton
_______________________________________________ GeoTools-GT2-Users mailing list GeoTools-GT2-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users