/** * Returns true if the current geometry has the geodetic marker raised * * @return */ boolean isCurrentGeometryGeodetic() { if (currentGeometry != null) { Boolean geodetic = (Boolean) currentGeometry.getUserData().get(OracleDialect.GEODETIC); return geodetic != null && geodetic; } return false; }
private Integer getSRID(GeometryDescriptor gDescr) { Integer result = null; if (gDescr != null) result = (Integer) gDescr.getUserData().get(JDBCDataStore.JDBC_NATIVE_SRID); if (result == null) result = currentSRID; return result; }
private Integer getFeatureTypeGeometrySRID() { return (Integer) featureType .getGeometryDescriptor() .getUserData() .get(JDBCDataStore.JDBC_NATIVE_SRID); }
private boolean isFeatureTypeGeometryGeodetic() { Boolean geodetic = (Boolean) featureType .getGeometryDescriptor() .getUserData() .get(OracleDialect.GEODETIC); return geodetic != null && geodetic; }
private Integer getFeatureTypeGeometryDimension() { GeometryDescriptor descriptor = featureType.getGeometryDescriptor(); return (Integer) descriptor.getUserData().get(Hints.COORDINATE_DIMENSION); }
public Integer getFeatureTypeGeometrySRID() { return (Integer) delegate.getFeatureType() .getGeometryDescriptor() .getUserData() .get(JDBCDataStore.JDBC_NATIVE_SRID); }
public Integer getFeatureTypeGeometryDimension() { GeometryDescriptor descriptor = delegate.getFeatureType().getGeometryDescriptor(); return (Integer) descriptor.getUserData().get(Hints.COORDINATE_DIMENSION); } }
Integer dimension = (Integer) gd.getUserData().get(Hints.COORDINATE_DIMENSION);
@Override protected void visitLiteralGeometry(Literal expression) throws IOException { // evaluate the literal and store it for later Geometry geom = (Geometry) evaluateLiteral(expression, Geometry.class); if (geom instanceof LinearRing) { // postgis does not handle linear rings, convert to just a line string geom = geom.getFactory().createLineString(((LinearRing) geom).getCoordinateSequence()); } Object typename = currentGeometry.getUserData().get(JDBCDataStore.JDBC_NATIVE_TYPENAME); if ("geography".equals(typename)) { out.write("ST_GeogFromText('"); out.write(geom.toText()); out.write("')"); } else { out.write("ST_GeomFromText('"); out.write(geom.toText()); if (currentSRID == null && currentGeometry != null) { // if we don't know at all, use the srid of the geometry we're comparing against // (much slower since that has to be extracted record by record as opposed to // being a constant) out.write("', ST_SRID(\"" + currentGeometry.getLocalName() + "\"))"); } else { out.write("', " + currentSRID + ")"); } } }
public GeometryDescriptor buildDescriptor(Name name, GeometryType type) { GeometryDescriptor descriptor = factory.createGeometryDescriptor( type, name, minOccurs(), maxOccurs(), isNillable, defaultValue()); // set the user data descriptor.getUserData().putAll(userData); resetDescriptorState(); return descriptor; }
@Override public void encodeGeometryColumn( GeometryDescriptor gatt, String prefix, int srid, Hints hints, StringBuffer sql) { boolean geography = "geography".equals(gatt.getUserData().get(JDBCDataStore.JDBC_NATIVE_TYPENAME)); if (geography) { sql.append("encode(ST_AsBinary("); encodeColumnName(prefix, gatt.getLocalName(), sql); sql.append("),'base64')"); } else { boolean force2D = hints != null && hints.containsKey(Hints.FEATURE_2D) && Boolean.TRUE.equals(hints.get(Hints.FEATURE_2D)); if (force2D) { sql.append("encode(ST_AsBinary(" + getForce2DFunction() + "("); encodeColumnName(prefix, gatt.getLocalName(), sql); sql.append(")),'base64')"); } else { sql.append("encode(ST_AsEWKB("); encodeColumnName(prefix, gatt.getLocalName(), sql); sql.append("),'base64')"); } } }
GeometryDescriptor gDescr = (GeometryDescriptor) attr; String srsName = null; Integer srsId = (Integer) gDescr.getUserData().get(JDBCDataStore.JDBC_NATIVE_SRID); if (srsId != null) { PreparedStatement ps1 = cx.prepareStatement(SELECT_SRS_NAME_FROM_ID); gDescr.getUserData().put(JDBCDataStore.JDBC_NATIVE_SRID, srsId);
@Override public void postCreateFeatureType( SimpleFeatureType featureType, DatabaseMetaData metadata, String schemaName, Connection cx) throws SQLException { // figure out if the table has a spatial index and mark the feature type as so if (featureType.getGeometryDescriptor() == null) { return; } String idxTableName = featureType.getTypeName() + "_HATBOX"; ResultSet rs = metadata.getTables( null, dataStore.escapeNamePattern(metadata, schemaName), dataStore.escapeNamePattern(metadata, idxTableName), new String[] {"TABLE"}); try { if (rs.next()) { featureType .getGeometryDescriptor() .getUserData() .put(H2_SPATIAL_INDEX, idxTableName); } } finally { dataStore.closeSafe(rs); } }
"geography".equals(gatt.getUserData().get(JDBCDataStore.JDBC_NATIVE_TYPENAME));
public void testSchema() throws Exception { SimpleFeatureType schema = dataStore.getSchema(tname(getLine3d())); CoordinateReferenceSystem crs = schema.getGeometryDescriptor().getCoordinateReferenceSystem(); assertEquals(Integer.valueOf(getEpsgCode()), CRS.lookupEpsgCode(crs, false)); assertEquals( getNativeSRID(), schema.getGeometryDescriptor().getUserData().get(JDBCDataStore.JDBC_NATIVE_SRID)); assertEquals( 3, schema.getGeometryDescriptor().getUserData().get(Hints.COORDINATE_DIMENSION)); }
descriptor.isNillable(), ((GeometryDescriptor) descriptor).getDefaultValue()); descriptor.getUserData().putAll(descriptor.getUserData());
private GeometryDescriptor reprojectGeometry(GeometryDescriptor descr) { if (descr == null) { return null; } GeometryType type = ftf.createGeometryType( descr.getType().getName(), descr.getType().getBinding(), reprojection, descr.getType().isIdentified(), descr.getType().isAbstract(), descr.getType().getRestrictions(), descr.getType().getSuper(), descr.getType().getDescription()); type.getUserData().putAll(descr.getType().getUserData()); GeometryDescriptor gd = ftf.createGeometryDescriptor( type, descr.getName(), descr.getMinOccurs(), descr.getMaxOccurs(), descr.isNillable(), descr.getDefaultValue()); gd.getUserData().putAll(descr.getUserData()); return gd; }
private void checkRiverReduced(SimpleFeatureType type) { assertEquals(4, type.getAttributeCount()); AttributeDescriptor id = type.getDescriptor(aname("id")); assertTrue(Number.class.isAssignableFrom(id.getType().getBinding())); GeometryDescriptor geom = type.getGeometryDescriptor(); assertEquals(aname("geom"), geom.getLocalName()); AttributeDescriptor river = type.getDescriptor(aname("river")); assertEquals(String.class, river.getType().getBinding()); AttributeDescriptor doubleFlow = type.getDescriptor(aname("doubleFlow")); assertTrue(Number.class.isAssignableFrom(doubleFlow.getType().getBinding())); // check srid and dimension are set as expected assertEquals( 4326, type.getGeometryDescriptor().getUserData().get(JDBCDataStore.JDBC_NATIVE_SRID)); assertEquals(2, type.getGeometryDescriptor().getUserData().get(Hints.COORDINATE_DIMENSION)); }
@Override protected void connect() throws Exception { super.connect(); line3DType = DataUtilities.createType( dataStore.getNamespaceURI() + "." + tname(getLine3d()), aname(ID) + ":0," + aname(GEOM) + ":LineString:srid=" + getEpsgCode() + "," + aname(NAME) + ":String"); line3DType.getGeometryDescriptor().getUserData().put(Hints.COORDINATE_DIMENSION, 3); poly3DType = DataUtilities.createType( dataStore.getNamespaceURI() + "." + tname(getPoly3d()), aname(ID) + ":0," + aname(GEOM) + ":Polygon:srid=" + getEpsgCode() + "," + aname(NAME) + ":String"); poly3DType.getGeometryDescriptor().getUserData().put(Hints.COORDINATE_DIMENSION, 3); crs = CRS.decode("EPSG:" + getEpsgCode()); }
actualSchema .getGeometryDescriptor() .getUserData() .get(JDBCDataStore.JDBC_NATIVE_SRID));