[GIS] Spatial Join Points and Polygons in ArcGIS Desktop

arcgis-desktopspatial-join

I am trying to create a grid road map with an index table for street look up.

I am using this tutorial by ESRI:
http://blogs.esri.com/esri/arcgis/2007/11/08/creating-street-name-indexes/

I am at the step whereby I am supposed to spatially join a point file (centroid point for each label) to a grid (which has the grid ID):

The next step is to use the Spatial Join tool (one to many is the join
option) and join the annotation to each grid cell they fall within.
However, you will likely not want to work directly with the annotation
because the spatial join options for “contains” or “within” will not
include any annotation that overlaps more than one grid cell. Further,
the “intersects” option will create duplicate entries in the same
circumstances. To get around that convert the annotation to point
features using the Feature to Point tool (Important note: I had to
delete the Element field; the type is blob, the field isn’t needed,
but if it’s there, the tool won’t run).

It seems to be telling me to spatially join the points to the grid in order to match up each label point with its grid ID value. However, whenever I spatially join, the output table is empty.

Any advice? I simply need to find a way to extract the grid ID of where the points falls within the grid.


I've included a photo of the spatial join parameters. After the process runs, it simply spits out a new shapefile with no features and an empty attribute table.

enter image description here

Best Answer

Run the spatial join tool again, but this time use the points as the target feature. Set the match option to Intersect. Set the Join Operation to One to One.

This will join the attributes of the grid to the point that it intersects. This will give you an output feature class that contains a grid reference for each point, which is what you stated as your desired output.

This is a more efficient solution than pushing the point attributes to the grids. You will still end up with a grid reference for each point, and you can run statistics/queries to view all the points that fall in a certain grid.

Related Question