Hello,

Sounds like you need to generate the .prj file with the projection. That
means you are going to have to create a CRS and set it on the Geometry 
attribute type. 

/* AttributeTypes, starting with Geometry using pre-made CRS */
GeometryAttributeType ptGA = 
                        (GeometryAttributeType)    
                        AttributeTypeFactory.newAttributeType(
                               "the_geom", 
                               ptG.getClass(), 
                               true, 
                               1, 
                               null, 
        org.geotools.referencing.crs.DefaultGeographicCRS.WGS84);

or some such. 

I presume the shapefile data store will dump this to a .prj file. If not
the .prj file is simply a WKT representation of the CRS so a simple 
toString() on the CRS will give you the data you need to put in the
file.

--adrian  


On Fri, 2006-12-15 at 17:24 -0200, Paulo Manabe wrote:
> Hi group, last week I sent a message about how to create a new shapefile, I
> do this with this code:
> 
> 
>     AttributeType[] types = new AttributeType[2];
> 
>     GeometryFactory geomFac = new GeometryFactory();
> 
>     //simpleline
>     Coordinate[] linestringCoordinates = new Coordinate[7];
>     linestringCoordinates[0] = new Coordinate(5.0d,5.0d);
>     linestringCoordinates[1] = new Coordinate(6.0d,5.0d);
>     linestringCoordinates[2] = new Coordinate(6.0d,6.0d);
>     linestringCoordinates[3] = new Coordinate(7.0d,6.0d);
>     linestringCoordinates[4] = new Coordinate(7.0d,7.0d);
>     linestringCoordinates[5] = new Coordinate(8.0d,7.0d);
>     linestringCoordinates[6] = new Coordinate(8.0d,8.0d);
>     LineString line = geomFac.createLineString(linestringCoordinates);
> 
>     types[0] = AttributeTypeFactory.newAttributeType("centerline",
> line.getClass());
>     types[1] = AttributeTypeFactory.newAttributeType("name", String.class);
>     FeatureType lineType = FeatureTypes.newFeatureType(types,
> "linefeature");
>     Feature lineFeature = lineType.create(new Object[]{line, "centerline"});
> 
> 
>     //simple polygon
>     Coordinate[] polygonCoordinates = new Coordinate[10];
>     polygonCoordinates[0] = new Coordinate(7,7);
>     polygonCoordinates[1] = new Coordinate(6,9);
>     polygonCoordinates[2] = new Coordinate(6,11);
>     polygonCoordinates[3] = new Coordinate(7,12);
>     polygonCoordinates[4] = new Coordinate(9,11);
>     polygonCoordinates[5] = new Coordinate(11,12);
>     polygonCoordinates[6] = new Coordinate(13,11);
>     polygonCoordinates[7] = new Coordinate(13,9);
>     polygonCoordinates[8] = new Coordinate(11,7);
>     polygonCoordinates[9] = new Coordinate(7,7);
>     LinearRing ring = geomFac.createLinearRing(polygonCoordinates);
>     Polygon polygon = geomFac.createPolygon(ring,null);
> 
>     types[0] = AttributeTypeFactory.newAttributeType("edge",
> polygon.getClass());
>     types[1] = AttributeTypeFactory.newAttributeType("name", String.class);
>     FeatureType polygonType =
> FeatureTypes.newFeatureType(types,"polygonfeature");
> 
>     Feature polygonFeature = polygonType.create(new Object[]{polygon,
> "edge"});
> 
> 
>     //simple point
>     Coordinate c = new Coordinate(14.0d,14.0d);
>     Point point = geomFac.createPoint(c);
>     types[0] = AttributeTypeFactory.newAttributeType("centre",
> point.getClass());
>     types[1] = AttributeTypeFactory.newAttributeType("name", String.class);
>     FeatureType pointType =
> FeatureTypes.newFeatureType(types,"pointfeature");
> 
>     Feature pointFeature = pointType.create(new Object[]{point, "centre"});
> 
> 
>     //memory store
>     MemoryDataStore data = new MemoryDataStore();
>     data.addFeature(lineFeature);
>     data.addFeature(polygonFeature);
>     data.addFeature(pointFeature);
> 
> 
>     String folder= "D:\\Shapes_LFPR\\Lote 05";
>     URL shape = new File(folder+ "\\apr.dbf").toURL();
>     String newStoreURLString =
> 
> shape.toString().substring(0,shape.toString().lastIndexOf("/") + 1)
>                         + "test_" +
> 
> shape.toString().substring(shape.toString().lastIndexOf("/") + 1);
> 
>     ShapefileDataStore newShapefileDataStore =
>                     new ShapefileDataStore(new URL(newStoreURLString));
> 
>     newShapefileDataStore.createSchema(data.getSchema("linefeature"));
> 
>     FeatureSource newFeatureSource =
> newShapefileDataStore.getFeatureSource("linefeature");
> 
>     FeatureStore newFeatureStore = (FeatureStore)newFeatureSource;
> 
>     Transaction t = newFeatureStore.getTransaction();
> 
>     FeatureResults fsFilteredShape = newFeatureSource.getFeatures();
> 
>     FeatureReader filteredReader = fsFilteredShape.reader();
> 
>     newFeatureStore.addFeatures(filteredReader);
> 
>     t.commit();
>     t.close();
> 
>     System.out.println("Shapefile created");
> 
> This code generated 3 files : test_apr.dbf, test_apr.shp and test_apr.shx.
> but, when I open this shapefile in a GIS program, like ArcGis, it throws the
> following error:  "One or more layers is missing spatial reference
> information. Data from those layers cannot be projected."
> 
> How can I set the spatial reference on this test code?
> 
> 
> 
> 
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys - and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> Geotools-gt2-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Geotools-gt2-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to