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, <[email protected]> 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
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
>
--
Ian Turton
_______________________________________________
GeoTools-GT2-Users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users