Skip to main content
Folks, 

 

 

I want the PointOnArea transformer to recognise composite polygons (eg either ones created with the Aggregator or composite polys in ArcGIS) so that only 1 result is returned for each composite area. 

 

 

It currently appears to devolve back to the source polygons. Has anyone seen this - and know how to get it to do this? 
Hi Jake,

 

 

It seems that PointOnAreaOverlayer will deaggregate input area features implicitly. When you don't want this result, you can use Aggregator with Group-by parameter to re-construct aggregate areas after the PointOnAreaOverlayer processing.

 

And, if aggregate features have no unique ID attribute which can be used for grouping after deaggregating, use a Counter transformer to create a unique ID attribute before inputting them into PointOnAreaOverlayer.

 

Takashi
Would it be possible to use the SpatialFilter transformer rather than the PointOnAreaOverlayer? That, I think, would be more likely to be able to handle aggregate/multi-feature geometry.

 

 

Mark
Yes, if you don't need the unique function of PointOnAreaOverlayer, using other transformers like SpatialFilter (as Mark mentions) would be worth considering. SpatialRelator or Clipper might be also usable .   Takashi
Hi Guys, 

 

 

Many thanks for the reply. 

 

 

Have just tested it - and YES - it uses the output from the Aggregate.. BUT  as far as i can see - it is only returning 1 candidate (eg point) even if more than 1 base is intersecting, even with the "Merge Attributes" set to yes. 

 

 

I need to get a hit each time a point falls within a polygon, so if 2 polys intersect 1 point --then it would return 2 results. Im actually reporting on chemistry exceedances within buffers of structures, so quite feasible for 1 point to fall within 2 - and it would correctly  contribute to the report on the 2 different structures. 

 

Point on Area does this ok, as i use the list exploder on the Areas,.... but SpatialFilter doesnt seem to. Still it does do exactly what i asked in the question...
Hi Jake,   SpatialRelator may be suitable for your purpose. Input the polygons to BASE port, the points to CANDIDATE port, and set 'INTERSECTS' as 'Test to Perform' parameter' of a SpatirlRelator. Then, each base feature (polygon) from OUTPUT port will have a list attribute containing the information of all points within itself. Oppositely, you also can get points with the information of all related polygons if you input the points to BASE and the polygons to CANDIDATE.

 

Takashi
Many thanks Takashi, 

 

 

Its perfect!

 

 

I had looked at the SpatialRelator, but when the filter failed I had assumed the relator would too - but its LIST properties came to the rescue. Thankl you very much. 

Reply