Hi @so_much_more
I suppose you would like to replace every CIRCULARSTRING (arc defined with 3 points) with LINESTRING (polyline) approximately equivalent to the original arc, then create a new COMPOUNDCURVE representation consisting of LINESTRINGs. If I understand your requirement correctly, this workflow might help you.
- GeometryReplacer (Geometry Encodieng: OGC Well Known Text) : Create a Path geometry from the original text - i.e. ‘COMPOUNDCURVE (CIRCULARSTRING (576285.49817038781 7034469.7208286244, 576325.10797829565 7034483.5911118472, 576367.02 7034485.76), … CIRCULARSTRING (576517.82000000007 7034449.45, 576521.86965882347 7034448.9300352931, 576525.94000000006 7034448.61, 576543.62140925834 7034449.5502338214, 576560.694903961 7034454.2419341141))’
- PathSplitter : Split the Path into individual arcs.
- ArcStroker : Transform the arcs to approximately equivalent polylines.
- GeomertyExtractor (Geometry Encoding: OGC Wel Known Text) : Extarct WKT representation for each polyline as an attribute called e.g. “_geometry”.
- Aggregator : Cocatenate all the WKT representations separating by comma.
- Attributes to Concatenate: _geometry
- Separator Character: ,
- StringConcatenator (or AttributeManager, AttributeCreator) : Build the required text string with this expression.
- COMPOUNDCURVE(@Value(_geometry))
Result: ‘COMPOUNDCURVE(LINESTRING (576285.4981703878 7034469.720828624,576295.004178631 7034474.239712696,576304.8078873551 7034478.070091426,576314.8595043488 7034481.192510645,576325.1079782957 7034483.591111847,576335.5012580589 7034485.25371274,576345.9865570456 7034486.171869113,576356.5106213049 7034486.340917728,576367.02 7034485.76), … LINESTRING (576525.9400000001 7034448.61,576531.8512345924 7034448.500295475,576537.7551456395 7034448.8142442545,576543.6214092583 7034449.550233821,576549.4198949317 7034450.704483961,576555.1208202662 7034452.27106617,576560.694903961 7034454.241934114))’
Hope this helps.