Question

Displacing Points

  • 27 March 2013
  • 7 replies
  • 15 views

Hi there, I am trying to create a point map consisting of post code centroids.  Some fall on the same centroid and therefore on the map, all appear over the top of one another.

 

 

Does anyone know of a way FME might be able to automatically displace these ponts to make the map more readable?

7 replies

Badge +14
Perhaps use the PointOnPointOverlayer to identify any clashes/overlaps and then consider assigning an offset value to these overlapping points to feed into the Offsetter. FME does have a Displacer transformer but it's new to me and having taken a look at it I don't think it will work on point geometries.

 

 

I'm surprised you are gettng this result in the first place though unless the problem is specific to vertical streets? How are you deriving the centroids, from which product?
Userlevel 4
Badge +13
Hi,

 

 

I agree with Dave's questions, from my experience deriving postal code areas is very possible in FME, using the hull accumulator and then extracting the center point of the polygons.

 

 

Can you try reproducing the postal codes polygons/centroids in FME?
Hi there,

 

Sorry - I probably didn't explain myself properly earlier!

 

 

We have been given a dataset of 17k points by a customer who would like to see the distribution of these points. 

 

Their spatial reference is a postcode.  Several of the points share the same postcode.  I'm looking for some way of artificially displacing the points so all instances will be shown on the map.
Userlevel 4
Hi,

 

 

one solution could be to use a PointOnPointOverlayer (with a tolerance based on your map scale and symbol size) to locate the points that overlap (test for the value of _overlaps).

 

 

You could then use an ExpressionEvaluator to calculate a shift value to the coordinates and finally shift your points with an Offsetter.

 

 

David
Badge +1
This isnt really straightforward in FME - I would use dispersepoints tool in mapinfo, or convert to a representation in arcgis and use disperse markers tool.

 

 

It depends on what scale you are mapping them, you will need to decide this first.......
Userlevel 4
I agree with Owen.

 

 

An alternative in the same genre could be to use FME to aggregate all the points (Aggregator with Group by on the postal zone, make sure you set the Count attribute). You could then replace the aggregate geometry with a InsidePointReplacer, which would give you a single point per postal zone, with an attribute giving the number of addresses in each zone.

 

 

This could be rendered in e.g. ArcMap with variable symbol sizes corresponding to the count attribute from the Aggregator (quantitative representation). Somewhat like this.

 

 

David
Badge +5

Just to point to Owen's note, the DisperseMarkers tool is in ArcMap's Cartography toolbox - ESRI blog on DisperseMarker tool - marker is a misnomer since it also changes the underlying feature class or create its own. I wish there was something similar in FME as I always find a need to temporary locate points in some arbitrary location converted from a spreadsheet or db table with no location into a point feature class and whose location could be moved at a future date. This normally happens when migrating non-spatial applications to GIS applications. David_r's solution could be a good workaround.

Reply