Solved

Rule based handling of Lists

  • 27 November 2017
  • 2 replies
  • 1 view

Userlevel 1
Badge +14
  • Contributor
  • 120 replies

Background:

I am maping a system of marked trails in a national park. There are dedicated trails for hiking, short walks, skiing, cycling, snow mobiles, snow shoes and what have you. In short it looks like someone droped a bowl of noodles over the place. In many places there are many uses for the same trail section, and it is these overlaping sections that I am trying to clean up.

 

Question:

I have used LineOnLineOverlayer to find the overlaping sections and have created a List over the attributes that identify the type of trail, but from there I have not found the tools to move on. What I would like to do next is to break appart the overlaping sections from their original longer lines and apply a number of sorting rules to the List. Some examples: Where hiking and skiing overlap I would like to delete all but one polyline and give this a new code. If there is a Nature trail I would like to delete everything else but that. If there is a cycling trail I would like to keep that for later regardles of what else there might be. And so on. Is there a transformer for Lists similar to TestFilter? If not, what would be an alternative method to accieve the above?

Lastly I would like to offset some of the trail types, eg cycling. I have not tried this yet but hope that

OffsetCurveGenerator will do the trick, if not I might have to pester you with more questions.

The final output will be output to a shape file for final styling in Illustrator.

icon

Best answer by takashi 27 November 2017, 16:03

View original

2 replies

Badge +22

The LineOnLineOverlayer will have already split your original lines at the overlaps. Ex. two lines that share a common segment will be split into three features.

 

You could use a combination of ListSearcher(s) (NatureTrail in _list) and/or ListSorter/ListIndexer/Tester to separate your data.
Userlevel 2
Badge +17

Hi @aron, if I understand your requirement correctly, you can concatenate the list elements containing identifiers of trails using ListConcatenator, and then filter the features with the TestFilter, using test clauses with "Contains" or "Contain Regex" operator.

Reply