0

I want to create a toolbox I have a list of point coordinates, that define a polygon and a list of attributes, that each polygon has. points_list = [(323917.71, 479699.45), (323923.36, 479699.74), (323923.89, 479709.52), (323918.24, 479709.23)], attributes = [('ADDRESSID', '5'), ('BUILDINGID', '4'), ('LANDID', '35'), ... ]

I want to insert the information into a feature class. I also want to define the projection, that would be selected by the user, inside the Toolbox.

I have tried:

list_of_fields = [key_value[0] for key_value in attributes ]
insertCursor = arcpy.da.InsertCursor(fc,
                                     ['SHAPE@', list_of_fields], spatial_ref)
polyArray = arcpy.Array()
for pointsPair in points_list:
    newPoint = arcpy.Point(*pointsPair)
    polyArray.add(newPoint)
newPoly = arcpy.Polygon(polyArray)
list_of_values = [key_value[1] for key_value in attributes ]
insertData = newPoly, object_id
insertCursor.insertRow(insertData)

Nothing is recorded in the feature class.

1 Answer 1

2

I believe the issue is with this line:

insertData = newPoly, object_id

First of all what is object_id? Seems like a completely unrelated object, you want to insert a row that is your polygon and in your example 3 values.

You want to be constructing a tuple like this:

insertData = (newPoly,5,4,35)

Then insert it with:

insertCursor.insertRow(insertData)

Also and I appreciate this is a code "snippet" but there is no loop, it's a one time read your your lists attributes and points_list.

1
  • From the cursor assignment, I think OP was trying to do insertData = [newPoly] + list_of_values, and AFAIK, the list should be fine with InsertCursor.
    – fatih_dur
    Commented Jun 3, 2020 at 0:02

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.