/** * Adds an attribute value by name. * * <p>This method can be used to add attribute values out of order. * * @param name The name of the attribute. * @param value The value of the attribute. * @throws IllegalArgumentException If no such attribute with teh specified name exists. */ public void set(String name, Object value) { int index = featureType.indexOf(name); if (index == -1) { throw new IllegalArgumentException("No such attribute:" + name); } set(index, value); }
? featureType.indexOf( featureType.getGeometryDescriptor().getLocalName()) : -1;
public SimpleFeatureAttribute(Class<A> fieldType, SimpleFeatureType sft, String fieldName) { super(SimpleFeature.class, fieldType, fieldName); this.fieldName = fieldName; this.fieldIndex = sft.indexOf(fieldName); }
private List<String> parseFields(SimpleFeatureType schema, String inputFields) { List<String> fieldList = new ArrayList<String>(); // comma separated fields String[] fields = inputFields.split(","); for (int k = 0; k < fields.length; k++) { String fieldName = FeatureTypes.validateProperty(schema, fields[k].trim()); if (schema.indexOf(fieldName) != -1 && !fieldList.contains(fieldName)) { fieldList.add(fieldName); } } return fieldList; }
public static boolean existProeprty(SimpleFeatureType schema, String propertyName) { propertyName = FeatureTypes.validateProperty(schema, propertyName); return schema.indexOf(propertyName) != -1; }
private int getAttributeIndex(VectorDataNode pointDataSource, AttributeDescriptor dataField) { final String fieldName = dataField.getLocalName(); if (fieldName.equals(CorrelativeFieldSelector.NULL_NAME)) { return -1; } return pointDataSource.getFeatureType().indexOf(fieldName); }
private int getAttributeIndex(VectorDataNode pointDataSource, AttributeDescriptor dataField) { final String fieldName = dataField.getLocalName(); if (fieldName.equals(CorrelativeFieldSelector.NULL_NAME)) { return -1; } return pointDataSource.getFeatureType().indexOf(fieldName); }
public void mappingField(SimpleFeatureType sourceType, SimpleFeatureType destType, String destPropertyName) { isGeometry = false; destPropertyName = FeatureTypes.validateProperty(destType, destPropertyName); destID = destType.indexOf(destPropertyName); for (AttributeDescriptor attr : sourceType.getAttributeDescriptors()) { String attributeName = attr.getLocalName(); if (attributeName.equalsIgnoreCase(destPropertyName)) { soruceID = sourceType.indexOf(attributeName); if (attr.getType() instanceof GeometryType) { isGeometry = true; } return; } } }
public static Geometry getGeometry(SimpleFeature feature, MathTransform transform) throws TransformException, NoSuchAuthorityCodeException, FactoryException { int index = feature.getFeatureType().indexOf("the_geom");//always 0? Geometry geometry = null; if (index >= 0) { geometry = (Geometry) feature.getAttribute(index); if (transform != null) { LOGGER.log(Level.FINEST, "transforming geometry {0}", geometry); geometry = JTS.transform(geometry, transform); LOGGER.log(Level.FINEST, "transformed geometry {0}", geometry); } // PrecisionModel.FIXED, 12 digits total, // i.e. worst case of 9 decimal places for abs(longitude) >= 100 // PrecisionModel pm = new PrecisionModel(1_000_000_000_000.0); // GeometryPrecisionReducer reducer = new GeometryPrecisionReducer(pm); // geometry = reducer.reduce(geometry); // LOGGER.log(Level.FINEST, "reduced precision geometry {0}", geometry); } return geometry; }
public static boolean eaualPropertys(SimpleFeatureType source, SimpleFeatureType target) { for (AttributeDescriptor descriptor : source.getAttributeDescriptors()) { if (descriptor instanceof GeometryDescriptor) { continue; } String propertyName = validateProperty(target, descriptor.getLocalName()); if (target.indexOf(propertyName) == -1) { return false; } } return true; }
@Override public SimpleFeatureType apply(ImportTask task, DataStore dataStore, SimpleFeatureType featureType) throws Exception { SimpleFeatureTypeBuilder builder = new SimpleFeatureTypeBuilder(); builder.init(featureType); int latIndex = featureType.indexOf(latField); int lngIndex = featureType.indexOf(lngField); if (latIndex < 0 || lngIndex < 0) { throw new Exception("FeatureType " + featureType.getName() + " does not have lat lng fields named '" + latField + "'" + " and " + "'" + lngField + "'"); } GeometryDescriptor geometryDescriptor = featureType.getGeometryDescriptor(); if (geometryDescriptor != null) { builder.remove(geometryDescriptor.getLocalName()); } builder.remove(latField); builder.remove(lngField); builder.add(pointFieldName, Point.class); return builder.buildFeatureType(); }
/** * Sets the attribute value of the underlying feature. * * @param attributeName The feature's attribute name. * @param attributeValue The feature's attribute value, may be {@code null}. */ public void setAttributeValue(String attributeName, Object attributeValue) { final int index = feature.getFeatureType().indexOf(attributeName); if (index != -1 && !ObjectUtils.equalObjects(attributeValue, getAttributeValue(attributeName))) { feature.setAttribute(index, attributeValue); fireProductNodeChanged(attributeName); } }
protected static void transferAttribute(SimpleFeature source, SimpleFeature target) { List<AttributeDescriptor> attributes = source.getFeatureType().getAttributeDescriptors(); for (AttributeDescriptor attr : attributes) { String attributeName = attr.getLocalName(); if (target.getFeatureType().indexOf(attributeName) == -1) { continue; } target.setAttribute(attributeName, source.getAttribute(attributeName)); } }
/** * * @param payload * @return */ private Shape getShape(SimpleFeature payload) { int attIndexPlotPoly = payload.getFeatureType().indexOf("the_geom"); Geometry geometry = null; if (attIndexPlotPoly >= 0) { geometry = (Geometry) payload.getAttribute(attIndexPlotPoly); } String shapeName = Bundle.ShapeDataObject_shape_name(); Shape shape = new Shape(geometry); shape.setName(shapeName); return shape; }
public SimpleFeatureType apply(ImportTask task, DataStore dataStore, SimpleFeatureType featureType) throws Exception { //remap the type SimpleFeatureTypeBuilder builder = new SimpleFeatureTypeBuilder(); builder.init(featureType); int index = featureType.indexOf(field); if (index < 0) { throw new Exception("FeatureType " + featureType.getName() + " does not have attribute named '" + field + "'"); } //remap the attribute to type date and ensure schema ordering is the same //@todo improve FeatureTypeBuilder to support this directly AttributeDescriptor existing = builder.remove(field); AttributeTypeBuilder attBuilder = new AttributeTypeBuilder(); attBuilder.init(existing); attBuilder.setBinding(type); builder.add(index, attBuilder.buildDescriptor(field)); return builder.buildFeatureType(); }
public GeoIndex(SimpleFeatureType sft, Attribute<O, A> attribute, int xBuckets, int yBuckets) { super(attribute, supportedQueries); geomAttributeIndex = sft.indexOf(attribute.getAttributeName()); if (sft.getDescriptor(geomAttributeIndex).getType().getBinding() == Point.class) { index = new BucketIndex<>(xBuckets, yBuckets, new Envelope(-180.0, 180.0, -90.0, 90.0)); } else { index = new SizeSeparatedBucketIndex<>(SizeSeparatedBucketIndex$.MODULE$.DefaultTiers(), xBuckets / 360d, yBuckets / 180d, new Envelope(-180.0, 180.0, -90.0, 90.0)); } }
public NodeIterator childIterator(NodeTest test, boolean reverse, NodePointer startWith) { if (test instanceof NodeNameTest) { NodeNameTest nodeNameTest = (NodeNameTest) test; if (!nodeNameTest.isWildcard()) { int index = feature.getFeatureType().indexOf(nodeNameTest.getNodeName().getName()); if (index > -1) { return new SingleFeaturePropertyIterator(this, index); } } else { return new FeaturePropertyIterator(this); } } if (test instanceof NodeTypeTest) { NodeTypeTest nodeTypeTest = (NodeTypeTest) test; if (nodeTypeTest.getNodeType() == Compiler.NODE_TYPE_NODE) { return new FeaturePropertyIterator(this); } } return super.childIterator(test, reverse, startWith); }
private void setFeatureStyleCss(SimpleFeatureFigure selectedFigure, FigureStyle style) { final VectorDataNode vectorDataNode = getVectorDataNode(); if (vectorDataNode != null) { // Transfer new style to associated placemark. Awful code :-( final Placemark placemark = vectorDataNode.getPlacemarkGroup().getPlacemark(selectedFigure.getSimpleFeature()); if (placemark != null) { placemark.setStyleCss(style.toCssString()); } else { final int index = selectedFigure.getSimpleFeature().getFeatureType().indexOf(Placemark.PROPERTY_NAME_STYLE_CSS); if (index != -1) { selectedFigure.getSimpleFeature().setAttribute(index, style.toCssString()); } } } } }
private void setFeatureStyleCss(SimpleFeatureFigure selectedFigure, FigureStyle style) { final VectorDataNode vectorDataNode = getVectorDataNode(); if (vectorDataNode != null) { // Transfer new style to associated placemark. Awful code :-( final Placemark placemark = vectorDataNode.getPlacemarkGroup().getPlacemark(selectedFigure.getSimpleFeature()); if (placemark != null) { placemark.setStyleCss(style.toCssString()); } else { final int index = selectedFigure.getSimpleFeature().getFeatureType().indexOf(Placemark.PROPERTY_NAME_STYLE_CSS); if (index != -1) { selectedFigure.getSimpleFeature().setAttribute(index, style.toCssString()); } } } } }
private STRtree loadNearFeatures(SimpleFeatureCollection features, String idField) { STRtree spatialIndex = new STRtree(); boolean hasID = idField != null && features.getSchema().indexOf(idField) != -1; SimpleFeatureIterator featureIter = features.features(); try { while (featureIter.hasNext()) { SimpleFeature feature = featureIter.next(); Geometry geometry = (Geometry) feature.getDefaultGeometry(); Object id = hasID ? feature.getAttribute(idField) : feature.getID(); NearFeature nearFeature = new NearFeature(geometry, id); spatialIndex.insert(geometry.getEnvelopeInternal(), nearFeature); } } finally { featureIter.close(); } return spatialIndex; }