Assigning polygon-to-polygon orientation angles to polygons with shared geometry.

1663
6
Jump to solution
12-01-2016 07:45 AM
AlexBoone
New Contributor

Using the "Generate Near Table" tool it is possible to determine the "NEAR_ANGLE" between polygons.  However this only works if the polygons do not share borders.

 

In the image attached, I'd like to indicate the orientation ("NEAR_ANGLE") of the polygons surrounding polygon 9, relative to polygon 9.  I.E.12 is north, 10 is east etc.

 

Is this possible?

 

Thanks!

 

-Alex

Polygon Near Table

0 Kudos
1 Solution

Accepted Solutions
DanPatterson_Retired
MVP Emeritus

If its not something it's something else   so some other options

That is part of a sort, is is indeed correct, 7 is south of 3, then you sort the centroids to get the West to east direction.  

Others

  • do an internal buffer (-ve buffer) by the exact correct amount that it works 
  • lexicographically sort your polygons and assign an EW, NS order to the centroids (more formal than the method which I suggested that works
  • create a medial axis from the polygons and use those
  • select the ones that have to be done manually and do those.

Nothing is going to work for everything I suspect

View solution in original post

6 Replies
DanPatterson_Retired
MVP Emeritus

for those simple cases, produce the centroids of the polygons and perform the analysis using the centroids, then join the results back to the polygon... for those simple cases...

AlexBoone
New Contributor

Hi Dan,

Unfortunately my actual polygons are more complex than my example.  The centroid method won't work especially with long, linear polygons, see #7:

Real Polys

I would like the table to indicate that #7 is west of #3, using the centroid method indicates that it is south of #3.

Thanks.

0 Kudos
DanPatterson_Retired
MVP Emeritus

If its not something it's something else   so some other options

That is part of a sort, is is indeed correct, 7 is south of 3, then you sort the centroids to get the West to east direction.  

Others

  • do an internal buffer (-ve buffer) by the exact correct amount that it works 
  • lexicographically sort your polygons and assign an EW, NS order to the centroids (more formal than the method which I suggested that works
  • create a medial axis from the polygons and use those
  • select the ones that have to be done manually and do those.

Nothing is going to work for everything I suspect

AlexBoone
New Contributor

Dammit, why can't everything have a simple, one-size-fits-all solution!

Thanks again for your help Dan, I'll look into those options.

-Alex

0 Kudos
VinceAngelo
Esri Esteemed Contributor

You can compute the intersection of the neighboring shapes (which will generate a line or point, or a line and a point) and compare the envelope of the relationship geometry with that of the reference shape, which would let you discern intercardinal directions (N/NE/E/SE/S/SW/W/NW) or even "Within".

- V

0 Kudos
DanPatterson_Retired
MVP Emeritus

the same result as a lexicographic sort of the centroids, then a point to point  line creation,selecting the shortest .

A minimum spanning tree of the centroids starting at the west most centroid will produce a good result also if the polygons are elongated in the NS direction compared to the EW.... the list goes on, but manually selecting and ordering them at a rate of 1 polygon per second will give one an idea how long it will take the mis-behaving one to get done relative to the easy ones.

0 Kudos