Skip to main content
Hi guys.
I have created ca 40 000 annotations for a basemap im working on and some of the angled texts overlap. Is there a good way to displace them, like a "negative snapper"? thanks for all the help i can get!

Have a look at the offsetter and see if that does it

http://docs.safe.com/fme/html/FME_Desktop_Documentation/FME_Transformers/Transformers/offsetter.htm


I tried messing with the offsetter, but it doesn't seem to offset intuitively, and as far as I can deduce I would need to calculate overlapping distance and store offset distances as an attribute and loop until no overlap = 0. There must be a better way?


There's actually a Displacer transformer that might do what you need. From the help doc:

 

"Solves proximity conflicts between features using a variant of the Nickerson displacement algorithm."


Ah thats terrific!

Although It doesnt seem to honor the text-geometry...? A little background: Ive taken ca 40 000 points and passed them through a set of TextAdders and added some Fontsize-, rotation-, and colour attributes via AttributeCreater. The Displacer seems to treat my input features as points. I suspect I need to get rid of the piont geometry, but then I don't know where to add my labels?


Ah thats terrific!

Although It doesnt seem to honor the text-geometry...? A little background: Ive taken ca 40 000 points and passed them through a set of TextAdders and added some Fontsize-, rotation-, and colour attributes via AttributeCreater. The Displacer seems to treat my input features as points. I suspect I need to get rid of the piont geometry, but then I don't know where to add my labels?

you could try creating a bounding box around the text features and using those to input into the Displacer then (assuming you can calcualte the transformation/translation) apply that to the text


@disco2000​ The MapTextLabeller is designed to do just this - although it is an extra cost plugin.


Reply