1

I have a set of feature classes: points representing addresses, and polygons representing buildings. Sometimes there are more than one addresses per building.

enter image description here

I use Maplex to generate and place labels. Instead of labeling the points with the address, I would like to take advantage of the Maplex "building labels" features to place the address labels nicely within the polygon boundaries.

I need to create a polygon for each of the points, using the geometry of the polygon that the point is within, with the attributes of the point.

Thus far I have able to use the spatial join tool to create a set of polygons with the attributes of one point within them, or a set of all the points with the attributes of the polygon they are within.... neither solution is quite what I'm looking for.

6
  • To clarify, you need one polygon per point even if there are overlapping polygons for the addresses with multiple points? Commented Feb 28, 2014 at 20:19
  • 2
    My condolences for you having to still use ArcGIS 9.2.
    – evv_gis
    Commented Feb 28, 2014 at 20:28
  • @evv_gis Perhaps thats the issue which should be addressed first Commented Feb 28, 2014 at 20:29
  • Would you be able to edit your Question to try and make what you are asking clearer by the addition of a single question mark, please?
    – PolyGeo
    Commented Mar 1, 2014 at 7:45
  • 1
    @jeremythamm - correct: three address points per building polygon should (in my mind) result in three identical polygons overlapping. The labeling tool will shift the labels about to make it work relatively nicely.
    – user9972
    Commented Mar 1, 2014 at 18:04

1 Answer 1

1

This is the inverse of a problem I was working on a few months ago.

If there are attributes in both features with which to do a regular join, joining the building polys to your address points and then using the Copy Features tool as described in this question's answers may allow you to do what you're trying to accomplish. Also mentioned in another answer there is the Make Query Table tool, which could also get you what you want. If a common attribute doesn't exist, it may be faster to create and populate one than the following option.

Update: After a little reading I'm not entirely sure why a spatial join didn't work for you. If Buildings are target and addresses are join, and you set the join operation to one-to-many (which a regular join cannot do, as it will only return the first matched record), that should result in an output of a building poly for every address point per the help file. However this might be failing because there are already multiple polygons stacked, resulting in a many-to-many join.

If there are no common attributes and a spatial join is your only choice, I believe you have already found your solution - you just need to iterate it. It's brute force and could use a model/scripting, especially if you want to do it on a recurring basis, but the process would be:

  1. Spatially join the points to the polys using a one-to-one operation. This only matches the first record returned in the one-to-many. Save the results (SJ1) somewhere.

  2. Now make a copy of your address points (ADworking) and using either a nested SQL selection query (both must be in a geodatabase) or a join, select all of the records in ADworking that have a match in SJ1 and delete them. ADworking should now contain only address points that don't yet have their own poly.

  3. Repeat the spatial join, now between ADworking and the building polys, saving the result as SJ2. Once again, only first record returned is matched, so repeat the selection/join between ADworking and now SJ2 to delete records in ADworking that have been matched.

You will have to repeat this process as many times as the maximum number of points in any single poly. If you get down to a few polys that have excessive address points compared to the rest, manual duplication and editing might be faster if the process hasn't been automated. When complete, you can merge all of your spatial join results and you should have essentially converted all of your points to polygons, including duplicates of the same poly with different addresses.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.