Difference between revisions of "Beanshell:Create linestring from points with id attribute"
(Created page with "{ import com.vividsolutions.jump.workbench.ui.*; // Create a dialog box to get the layer to be processed // and the attribute containing the sequence dialog = new MultiInput...") |
|||
Line 1: | Line 1: | ||
+ | BeanTools with user interface to create a LineString from points with an attribute | ||
+ | containing the order of points | ||
+ | |||
{ | { | ||
import com.vividsolutions.jump.workbench.ui.*; | import com.vividsolutions.jump.workbench.ui.*; | ||
− | |||
− | |||
dialog = new MultiInputDialog(wc.workbench.frame, "Input box", true); | dialog = new MultiInputDialog(wc.workbench.frame, "Input box", true); | ||
dialog.addLayerComboBox("LAYER", wc.createPlugInContext().getCandidateLayer(0), "", wc.layerManager); | dialog.addLayerComboBox("LAYER", wc.createPlugInContext().getCandidateLayer(0), "", wc.layerManager); | ||
Line 12: | Line 13: | ||
if (!dialog.wasOKPressed()) {return;} | if (!dialog.wasOKPressed()) {return;} | ||
− | |||
lyr = dialog.getLayer("LAYER"); | lyr = dialog.getLayer("LAYER"); | ||
att = dialog.getComboBox("SEQUENCE").selectedItem; | att = dialog.getComboBox("SEQUENCE").selectedItem; | ||
− | |||
schema = new FeatureSchema(); | schema = new FeatureSchema(); | ||
schema.addAttribute("GEOMETRY",AttributeType.GEOMETRY); | schema.addAttribute("GEOMETRY",AttributeType.GEOMETRY); | ||
dataset = new FeatureDataset(schema); | dataset = new FeatureDataset(schema); | ||
− | |||
map = new TreeMap(); | map = new TreeMap(); | ||
int i = 0; | int i = 0; |
Revision as of 08:15, 14 September 2016
BeanTools with user interface to create a LineString from points with an attribute containing the order of points
{
import com.vividsolutions.jump.workbench.ui.*;
dialog = new MultiInputDialog(wc.workbench.frame, "Input box", true); dialog.addLayerComboBox("LAYER", wc.createPlugInContext().getCandidateLayer(0), "", wc.layerManager); dialog.addAttributeComboBox("SEQUENCE", "LAYER", AttributeTypeFilter.NUMSTRING_FILTER, "Select the attribute containing the sequence"); GUIUtil.centreOnWindow(dialog); dialog.setVisible(true); if (!dialog.wasOKPressed()) {return;}
lyr = dialog.getLayer("LAYER"); att = dialog.getComboBox("SEQUENCE").selectedItem;
schema = new FeatureSchema(); schema.addAttribute("GEOMETRY",AttributeType.GEOMETRY); dataset = new FeatureDataset(schema);
map = new TreeMap(); int i = 0; for (feature : lyr.featureCollectionWrapper.features) {
if (feature.schema.hasAttribute(att)) { map.put(feature.getAttribute(att), feature.geometry.coordinate); } else map.put(i++, feature.geometry.coordinate);
} geometry = new GeometryFactory().createLineString(map.values().toArray(new Coordinate[map.size()])); f = new BasicFeature(schema); f.setGeometry(geometry); dataset.add(f); wc.layerManager.addLayer("Result",lyr.name+"-line",dataset);
}