Hi Diego, I had to do a bit of work with 4D coordinates and what I found out was that all the JTS classes used for building geometries (Coordinate, and those supplied to implement the interfaces CoordinateSequence and CoordinateSequenceFactory) are inherently 3D only.
If you want to use 4D you have to provide some kind of 4D coordinate class, and implementations of CoordinateSequence and CoordinateSequenceFactory that know how to populate it. Fortunately in the full source download of JTS there is a package called com.vividsolutions.jtsexample.geom that has examples of how to do this. Note that in the version of JTS I downloaded (1.11) there was a bug in ExtendedCoordinateSequence.java; the switch statements in setOrdinate(int, int, double) is missing break statements after each case. Mark > ---------------------------------------------------------------------- > > Message: 1 > Date: Tue, 18 Oct 2011 12:30:17 +0100 > From: Diego Jesus<[email protected]> > Subject: [Geotools-gt2-users] Writing to a postgis database with 4 > dimensional coordinates > To: geotools users<[email protected]> > Message-ID:<[email protected]> > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > Hi! > > I'm trying to write a geometry to a postgis database which has a > constraint that only allows 4D coordinates: > > CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 4 > > I'm using a a GeometryFactory to create my geometries and I have tried > to set a hint: > > GeometryFactory factory = JTSFactoryFinder.getGeometryFactory(new > Hints(Hints.COORDINATE_DIMENSION, new Integer(4))); > Geometry geom = factory.createPoint(new Coordinate(100, 101, 102)); > > However, this does not work and postgres complains with a: > > new row for relation "Geometry" violates check constraint > "enforce_dims_the_geom". > > I need to write the data with a Postgresql Connection and so I did: > > WKBWriter writer = new WKBWriter(); > PreparedStatement st = con.prepareStatement("INSERT INTO > \""+TABLE_NAME+"\" " + > "("+THE_GEOM+") " + > "VALUES (?)", > PreparedStatement.RETURN_GENERATED_KEYS); > st.setBytes(1, writer.write(g.mGeometry)); > > How can I write the geometry with 4D coordinates? > > Thanks ------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2d-oct _______________________________________________ Geotools-gt2-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
