Search in sources :

Example 91 with Point

use of com.vividsolutions.jts.geom.Point in project hale by halestudio.

the class PostGISGeometries method configureGeometryColumnType.

@Override
public Class<? extends Geometry> configureGeometryColumnType(PGConnection connection, BaseColumn<?> column, DefaultTypeDefinition type) {
    Connection con = (Connection) connection;
    String columnValueName = column.getParent().getName();
    String geometryType = null;
    try {
        Statement stmt = con.createStatement();
        // Get the srid, dimension and geometry type
        ResultSet rs = stmt.executeQuery("SELECT srid,type,coord_dimension FROM geometry_columns WHERE f_table_name = " + "'" + columnValueName + "'");
        if (rs.next()) {
            geometryType = rs.getString("type");
            String dimension = rs.getString("coord_dimension");
            // Get the epsg code for the srid
            String srid = rs.getString("srid");
            ResultSet r = stmt.executeQuery("SELECT auth_srid, auth_name, srtext FROM spatial_ref_sys WHERE srid = " + srid);
            if (r.next()) {
                // Create Constraint to save the informations
                GeometryMetadata columnTypeConstraint = new GeometryMetadata(r.getString("auth_srid"), Integer.parseInt(dimension), r.getString("srtext"), r.getString("auth_name"));
                type.setConstraint(columnTypeConstraint);
            }
        } else {
        // XXX what if no SRID information is present? is that a case
        // that may still be valid?
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
    // In this case we have no geometry column information
    if (geometryType == null) {
        // use geometry even if no geometry column is present describing it
        return Geometry.class;
    }
    // return the geometryType
    if (geometryType.equalsIgnoreCase("MultiPolygon")) {
        return MultiPolygon.class;
    } else if (geometryType.equalsIgnoreCase("MultiPoint")) {
        return MultiPoint.class;
    } else if (geometryType.equalsIgnoreCase("MultiLineString")) {
        return MultiLineString.class;
    } else // TODO: shouldn't this be LineString instead?
    if (geometryType.equalsIgnoreCase("LinearRing")) {
        return LinearRing.class;
    } else if (geometryType.equalsIgnoreCase("Point")) {
        return Point.class;
    } else if (geometryType.equalsIgnoreCase("Polygon")) {
        return Polygon.class;
    } else {
        return Geometry.class;
    }
}
Also used : Geometry(com.vividsolutions.jts.geom.Geometry) MultiLineString(com.vividsolutions.jts.geom.MultiLineString) GeometryMetadata(eu.esdihumboldt.hale.common.schema.model.constraint.type.GeometryMetadata) SQLException(java.sql.SQLException) MultiPolygon(com.vividsolutions.jts.geom.MultiPolygon) Statement(java.sql.Statement) Connection(java.sql.Connection) PGConnection(org.postgresql.PGConnection) ResultSet(java.sql.ResultSet) MultiLineString(com.vividsolutions.jts.geom.MultiLineString) Point(com.vividsolutions.jts.geom.Point) MultiPoint(com.vividsolutions.jts.geom.MultiPoint)

Example 92 with Point

use of com.vividsolutions.jts.geom.Point in project StreetComplete by westnordost.

the class GeoJsonReaderTest method testMultiPoint.

public void testMultiPoint() {
    Geometry g = read("{\n" + "  \"type\": \"MultiPoint\",\n" + "  \"coordinates\": [[1,2],[2,4]]\n" + "}");
    assertTrue(g instanceof MultiPoint);
    MultiPoint m = (MultiPoint) g;
    assertEquals(2, m.getNumGeometries());
    Point p0 = (Point) m.getGeometryN(0);
    Point p1 = (Point) m.getGeometryN(1);
    assertEquals(1.0, p0.getX());
    assertEquals(2.0, p0.getY());
    assertEquals(2.0, p1.getX());
    assertEquals(4.0, p1.getY());
}
Also used : Geometry(com.vividsolutions.jts.geom.Geometry) MultiPoint(com.vividsolutions.jts.geom.MultiPoint) MultiPoint(com.vividsolutions.jts.geom.MultiPoint) Point(com.vividsolutions.jts.geom.Point)

Example 93 with Point

use of com.vividsolutions.jts.geom.Point in project StreetComplete by westnordost.

the class GeoJsonReaderTest method testGeometryCollection.

public void testGeometryCollection() {
    Geometry g = read("{\n" + "  \"type\": \"GeometryCollection\",\n" + "  \"geometries\":\n" + "  [\n" + "    {\n" + "      \"type\": \"Point\",\n" + "      \"coordinates\": [5,10]\n" + "    },\n" + "    {\n" + "      \"type\": \"LineString\",\n" + "      \"coordinates\": [[5,10],[10,5]]\n" + "    }\n" + "  ]\n" + "}");
    assertTrue(g instanceof GeometryCollection);
    assertEquals(2, g.getNumGeometries());
    assertTrue(g.getGeometryN(0) instanceof Point);
    assertTrue(g.getGeometryN(1) instanceof LineString);
    assertEquals(3, g.getNumPoints());
}
Also used : Geometry(com.vividsolutions.jts.geom.Geometry) GeometryCollection(com.vividsolutions.jts.geom.GeometryCollection) MultiLineString(com.vividsolutions.jts.geom.MultiLineString) LineString(com.vividsolutions.jts.geom.LineString) MultiPoint(com.vividsolutions.jts.geom.MultiPoint) Point(com.vividsolutions.jts.geom.Point)

Example 94 with Point

use of com.vividsolutions.jts.geom.Point in project StreetComplete by westnordost.

the class GeoJsonReaderTest method test3DPoint.

public void test3DPoint() {
    Geometry g = read("{\n" + "  \"type\": \"Point\",\n" + "  \"coordinates\": [1,2,3]\n" + "}");
    assertTrue(g instanceof Point);
    Point p = (Point) g;
    assertEquals(1.0, p.getX());
    assertEquals(2.0, p.getY());
    assertEquals(3.0, p.getCoordinate().z);
}
Also used : Geometry(com.vividsolutions.jts.geom.Geometry) MultiPoint(com.vividsolutions.jts.geom.MultiPoint) Point(com.vividsolutions.jts.geom.Point)

Example 95 with Point

use of com.vividsolutions.jts.geom.Point in project tutorials by eugenp.

the class HibernateSpatialTest method shouldSelectDisjointPoints.

@Test
public void shouldSelectDisjointPoints() throws ParseException {
    insertPoint("POINT (1 2)");
    insertPoint("POINT (3 4)");
    insertPoint("POINT (5 6)");
    Point point = (Point) wktToGeometry("POINT (3 4)");
    Query query = session.createQuery("select p from PointEntity p " + "where disjoint(p.point, :point) = true", PointEntity.class);
    query.setParameter("point", point);
    assertEquals("POINT (1 2)", ((PointEntity) query.getResultList().get(0)).getPoint().toString());
    assertEquals("POINT (5 6)", ((PointEntity) query.getResultList().get(1)).getPoint().toString());
}
Also used : Query(javax.persistence.Query) Point(com.vividsolutions.jts.geom.Point) PointEntity(com.baeldung.hibernate.pojo.PointEntity) Test(org.junit.Test)

Aggregations

Point (com.vividsolutions.jts.geom.Point)157 Geometry (com.vividsolutions.jts.geom.Geometry)53 MultiPoint (com.vividsolutions.jts.geom.MultiPoint)49 Coordinate (com.vividsolutions.jts.geom.Coordinate)46 ArrayList (java.util.ArrayList)27 Polygon (com.vividsolutions.jts.geom.Polygon)26 LineString (com.vividsolutions.jts.geom.LineString)25 SamplePoint (org.datanucleus.samples.jtsgeometry.SamplePoint)22 List (java.util.List)20 PersistenceManager (javax.jdo.PersistenceManager)19 Transaction (javax.jdo.Transaction)19 MultiLineString (com.vividsolutions.jts.geom.MultiLineString)18 Query (javax.jdo.Query)17 Test (org.junit.Test)17 MultiPolygon (com.vividsolutions.jts.geom.MultiPolygon)15 HashMap (java.util.HashMap)15 GeometryFactory (com.vividsolutions.jts.geom.GeometryFactory)12 QuadPointDouble (net.osmand.data.QuadPointDouble)12 GeometryCollection (com.vividsolutions.jts.geom.GeometryCollection)10 LinearRing (com.vividsolutions.jts.geom.LinearRing)10