Difference between revisions of "Beanshell:Set an attribute fore every feature of a Layer"
Jump to navigation
Jump to search
(Created page with 'This script will add 1.0 to the "z" attribute of every feature in layer "elevation". It is assumed that "z" is of type DOUBLE. A ''java.lang.IllegalArgumentException'' will be t…') |
m |
||
Line 10: | Line 10: | ||
return; | return; | ||
} | } | ||
− | |||
FeatureSchema schema = layer.getFeatureCollectionWrapper().getFeatureSchema(); | FeatureSchema schema = layer.getFeatureCollectionWrapper().getFeatureSchema(); | ||
int zIndex = schema.getAttributeIndex("z"); | int zIndex = schema.getAttributeIndex("z"); |
Latest revision as of 01:55, 12 October 2009
This script will add 1.0 to the "z" attribute of every feature in layer "elevation". It is assumed that "z" is of type DOUBLE.
A java.lang.IllegalArgumentException will be thrown if attribute "z" is not found in layer "elevation".
{ import com.vividsolutions.jump.workbench.model.Layer; Layer layer = wc.getLayerManager().getLayer("elevation"); if (layer == null) { System.err.println ("layer not found"); return; } FeatureSchema schema = layer.getFeatureCollectionWrapper().getFeatureSchema(); int zIndex = schema.getAttributeIndex("z"); if ( schema.getAttributeType(zIndex) != AttributeType.DOUBLE ) { System.err.println ("attribute 'z' not of type DOUBLE"); return; } // Loop for each object in layer Iterator iter =layer.getFeatureCollectionWrapper().iterator(); while (iter.hasNext()) { BasicFeature f = (BasicFeature)iter.next(); Double d = f.getAttribute(zIndex); f.setAttribute(zIndex, new Double(d.doubleValue() + 1.0)); } }