Difference between revisions of "Beanshell:Scripts for Roadmatcher"
Jump to navigation
Jump to search
(Created page with 'Hi Chris: BeanShell can be the same as Java. But it also allows shortcuts, most notably: omitting the type declaration. Example: String x = "Hello World"; is the same as: x…') |
(No difference)
|
Latest revision as of 01:08, 12 October 2009
Hi Chris:
BeanShell can be the same as Java. But it also allows shortcuts, most notably: omitting the type declaration. Example:
String x = "Hello World";
is the same as:
x = "Hello World";
Here's how to change all the TRIM segment comments to "ABC":
{
for (feature : wc.getLayerManager().getLayer("Network TRIM").getFeatureCollectionWrapper().getFeatures()) {
feature.getRoadSegment().setComment("ABC");
}
}
I've enclosed everything with { and } because I find that the BeanShell editor that JUMP uses sometimes freezes otherwise :-(
Here's how to change all the TRIM segment comments to "Long Road" if the length > 2000:
{
for (feature : wc.getLayerManager().getLayer("Network TRIM").getFeatureCollectionWrapper().getFeatures()) {
if (feature.getRoadSegment().getApparentLineLength() <= 2000) { continue; }
feature.getRoadSegment().setComment("Long Road");
}
}
Note the use of the "enhanced for loop" - a Java 1.5 thing, but BeanShell lets you use it in any version of Java :-)
OK time for the issue log.
Here's how to change all the issue log descriptions to "Dell Axim X30":
{
for (feature : wc.getLayerManager().getLayer("Issue Log").getFeatureCollectionWrapper().getFeatures()) {
feature.setAttribute("Desc", "Dell Axim X30");
}
}
Hope that helps!