[GIS] How to determine Parcel Neighbors

arcgis-desktopparcelpostgis

enter image description here

i like to get the neighbors of the Parcels "P1" like following :

From B1 to B2 => P5

B2 => P4

From B2 to B3 => P3

From B3 to B4 => P2

From B4 to B1 => P6

i like to make this process automatic by a GIS software like ArcGIS or Postgis, i have thought to make a buffer of the parcel P1 , to get the lines of the boundary of P1 but i will not get the parcel P4 as neighbor .

any solution to get the neighbors like described above.

Best Answer

I have tried to make the possible solution simpler but it seems to be the only solution, but i like to have any suggestions .

  • from polygons make lines (arcs) => lines.
  • buffer polygons with 3m => polygon_buffer.
  • make spatial join between polygon_buffer and lines with "one to many" , to get all the polygons touching the lines => sp_lines_buffer.
  • for every polygon get its boundary lines, from "sp_lines_buffer" to get neighbor polygon for every line.

For Arc based adjacent it's enough , but for adding node based adjacent , we need to add those steps:

  • from polygons get vertices => nodes.

  • make spatial join between polygon_buffer and nodes with "one to many" , to get all the polygons touching the nodes => sp_nodes_buffer.

  • take a node based neighbors only if the number of neighbors per node is > 3. if not we will ignore the node.

Related Question