Hi @sanozmen ,
I would try with a combination of CenterLineReplacer + Chopper + Buffer (with None as End Cap Style). I just did a small test with a fake dataset and it doesn't look too bad, although you'll have to think of some logic to decide which sections to keep at the intersections:
Other transformers you might want to look at are the Clipper, Intersector and the Overlayers (AreaOnAreaOverlayer, LineOnAreaOverlayer, and so on).
Anyway, if you're looking for an excuse to get an FME license you don't need any. FME is really cool and everybody should be using it 😀
Hi @fgrion ,
Thanks a lot for your time and the solution offer. It seems like there are some different tools/algorithms in FME which might really help to me but I'm still very confused on what to do at complex intersections and traffic islands like the ones shown in the image attached. That's an screenshot from a sample result I created wit QGIS. But as you can see , when it comes to splitting the polygons at intersection, things get really messy. Actually this is the tidiest I can get with a lot of thinking and fine tuning. Yet it's hard to come up with a generic workflow which is applicable when there are too many different varieties of road intersections in a very large dataset. So, I'm really curious if there is anything in FME that can help with this complexity.
Just a thought... Take the output of @fgiron's suggestion, assign a unique id to each polygon (simply using a Counter for example), create centerpoints for the polygons and then Voronoi polygons from those centerpoints. Clip them with the original polygons, making sure to group by that unique id.
Great addition @Hans van der Maarel ! I did a test creating the centerpoints directly from the Chopper and I'd say it looks pretty well 😊
Ah, and obviously I also used FME to vectorise the image posted above ;-)
Thanks a lot both. My initial approach was more based on the creation of centreline as I was also hoping to use that centreline while dividing polygons vertically. However this method you both designed works like a charm. The only missing thing is that as a last step I'd like to divide those chopped polygons vertically based on the width of the polygon. If it is let's say wider than 7 metres than I should divide those polygons vertically along that road. If not, they will remain as they are. Do you think that this would require me to change the entire process you outlined above?
Hi @sanozmen, the centrelines are the input of the Chopper above, you can still use them to divide the polygons. You can also calculate the width of the polygons via the centreline of their rotated bounding box, for example, or maybe a line perpendicular to the centreline. There's probably many ways to do it.
Hi @fgiron sorry my bad, I couldn't notice that. I've already installed FME guys thanks a lot again.
For (almost) rectangular shapes, I often approximate length and width from area and circumference:
Length: @Evaluate(@Length()/4 + @sqrt(@pow(@Length()/4,2)-@Area()))
Width: @Evaluate(@Length()/4 - @sqrt(@pow(@Length()/4,2)-@Area()))
(for polygons, @Length gives the circumference)
Only with these small objects, it's not always clear whether the length or the width of the object corresponds with the width of the road.