Change builder.setName("Location"); to builder.setName("the_geom"); and
it should work fine.
Ian
On Tue, Mar 24, 2015 at 8:27 AM Lejdel <lejde...@live.com> wrote:
> Please, I have the coordinates of polygons, I want to save them in a
> shapefile
> I wrote this program but it does not work:
> public class Afficher {
>
>
> public void chercheAfficher(Coordinate[] coord) throws IOException
> //throws Exception
> {
>
> /**for ( int i =0;i< coord.length;i++){
> System.out.println(coord[i].x + " " + coord[i].y );}**/
>
> final SimpleFeatureType TYPE = createFeatureType();
>
>
> SimpleFeatureCollection collection =
> FeatureCollections.newCollection();
> GeometryFactory geometryFactory =
> JTSFactoryFinder.getGeometryFactory(null);
>
>
> LinearRing ring = geometryFactory.createLinearRing( coord);
>
> LinearRing holes[] = null; // use LinearRing[] to represent holes
>
> LinearRing polygon = geometryFactory.createLinearRing(coord);
>
> SimpleFeatureBuilder featureBuilder = new SimpleFeatureBuilder(TYPE);
> featureBuilder.add(polygon);
> // featureBuilder.add("name");
> // featureBuilder.add("15");
> SimpleFeature feature = featureBuilder.buildFeature(null);
> collection.add(feature);
>
>
> String file = FileUtils.getFileName("D:\\location.csv");
> File newFile = getNewShapeFile(file);
>
> ShapefileDataStoreFactory dataStoreFactory = new
> ShapefileDataStoreFactory();
>
> Map<String, Serializable> params = new HashMap<String,
> Serializable>();
> params.put("url", newFile.toURI().toURL());
> params.put("create spatial index", Boolean.TRUE);
>
> ShapefileDataStore newDataStore = (ShapefileDataStore)
> dataStoreFactory.createNewDataStore(params);
> newDataStore.createSchema(TYPE);
>
> Transaction transaction = new DefaultTransaction("create");
>
> String typeName = newDataStore.getTypeNames()[0];
> SimpleFeatureSource featureSource =
> newDataStore.getFeatureSource(typeName);
>
> if (featureSource instanceof SimpleFeatureStore) {
> SimpleFeatureStore featureStore = (SimpleFeatureStore)
> featureSource;
>
> featureStore.setTransaction(transaction);
> try {
> featureStore.addFeatures(collection);
> transaction.commit();
>
> } catch (Exception problem) {
> problem.printStackTrace();
> transaction.rollback();
>
> } finally {
> transaction.close();
> }
> System.exit(0); // success!
> } else {
> System.out.println(typeName + " does not support read/write
> access");
> System.exit(1);
> }
>
>
> }
>
>
>
> //
>
> private static SimpleFeatureType createFeatureType() {
>
> SimpleFeatureTypeBuilder builder = new SimpleFeatureTypeBuilder();
> builder.setName("Location");
> builder.setCRS(DefaultGeographicCRS.WGS84); // <- Coordinate
> reference system
>
> // add attributes in order
> builder.add("Location", Polygon.class);
> builder.length(15).add("Name", String.class); // <- 15 chars width
> for name field
>
> // build the type
> final SimpleFeatureType LOCATION = builder.buildFeatureType();
>
> return LOCATION;
>
> }
> private static File getNewShapeFile(File csvFile) {
> String path = csvFile.getAbsolutePath();
> String newPath = path.substring(0, path.length() - 4) + ".shp";
>
> JFileDataStoreChooser chooser = new JFileDataStoreChooser("shp");
> chooser.setDialogTitle("Save shapefile");
> chooser.setSelectedFile(new File(newPath));
>
> int returnVal = chooser.showSaveDialog(null);
>
> if (returnVal != JFileDataStoreChooser.APPROVE_OPTION) {
> // the user cancelled the dialog
> System.exit(0);
> }
>
> File newFile = chooser.getSelectedFile();
> if (newFile.equals(csvFile)) {
> System.out.println("Error: cannot replace " + csvFile);
> System.exit(0);
> }
>
> return newFile;
> }
>
>
>
> }
>
>
>
> --
> View this message in context: http://osgeo-org.1560.x6.
> nabble.com/Polygon-to-Shapefile-tp5195100.html
> Sent from the geotools-gt2-users mailing list archive at Nabble.com.
>
> ------------------------------------------------------------
> ------------------
> Dive into the World of Parallel Programming The Go Parallel Website,
> sponsored
> by Intel and developed in partnership with Slashdot Media, is your hub for
> all
> things parallel software development, from weekly thought leadership blogs
> to
> news, videos, case studies, tutorials and more. Take a look and join the
> conversation now. http://goparallel.sourceforge.net/
> _______________________________________________
> GeoTools-GT2-Users mailing list
> GeoTools-GT2-Users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
>
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
GeoTools-GT2-Users mailing list
GeoTools-GT2-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users