[GIS] How to get JSON representation from JTS Geometry

jsonjts-topology-suitepostgis

I'm using JTS (http://www.vividsolutions.com/jts/JTSHome.htm) and need to get a JSON representation of a Point :

Hibernate beam:

@Type(type = "org.hibernate.spatial.GeometryType")
@Column(name="the_geom")
private Point theGeom;

Table:

CREATE TABLE cities
(
  id_city serial NOT NULL,
  name text,
  the_geom geometry,
  id_user integer,
  CONSTRAINT cities_pkey PRIMARY KEY (id_city),
  CONSTRAINT fk2de48dcf3c0b0090 FOREIGN KEY (id_user)
      REFERENCES users (id_user) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)

I need something like:

jsonString = someClass.convertToJson( myBeam.getTheGeom() )

Best Answer

From @Mike Toews' tip:

@Entity
@Table(name="cities") 
public class City {

    @Type(type = "org.hibernate.spatial.GeometryType")
    @Column(name="the_geom")
    private Point theGeom;

    public String asJson() {
        GeometryJSON g = new GeometryJSON();
        return g.toString(theGeom) ; 
    }
}

You will need at least these JARs:

gt-api-10.0.jar
gt-epsg-extension-10.0.jar
gt-epsg-wkt-10.0.jar
gt-geojson-10.2.jar
gt-geometry-10.0.jar
gt-metadata-10.0.jar
gt-opengis-10.0.jar
gt-referencing-10.0.jar
jts-1.8.jar
jtsio-1.8.jar

and some few others I can't remember now, because I don't really need GeoTools.