1

I have a scenario where i need to update a database. I have several shapefiles from which I get the data from.

I need to draw polygons inside certain borders, and the borders don't always come from the same shape file.

How can I achieve this?

We do have the Construct Polygons tool in the advanced Editing Toolbar. It does serve the purpose but it creates unnecessary polygons too.

Is there a better way to do this?

Need a polygon in the area between the three features.

Need a polygon in the area between the three features. All these come from different shapefiles.

If i do this with Construct Polygons, I get the following:

when using Construct Polygons Tool

But I need only the one inside not all the possible polygons.

Is there any tool already for this? Or If there is some way we can custom make a code for this.

Edit: There seem to be number of ways to do this. But i am looking for something that will speed up the process as I am working on a huge database and every second saved would be helpful.

Something like this in ArcMap Would be great. Creation of polygon in the gap between two existing polygons

11
  • 1
    Use the Trace tool to digitize your polygon.
    – PolyGeo
    Commented Jun 11, 2019 at 4:21
  • Do you have an advanced license? If so you can use Feature to Polygon on your 3 datasets resources.arcgis.com/en/help/main/10.2/index.html#//… to generate polygons where the features are closed then copy/paste/merge the ones you want into your edit layer. You can omit the polygons that already exist using Select by Location with a buffer of a negative small number (depends on your data) then switch selection and create a layer from selected features - not deleting the matching ones just in case you want them later. Commented Jun 11, 2019 at 4:39
  • @SonofaBeach Yes I could try this way, But in certain scenarios, this becomes too much of a tedious task as, the features might not be as small as I have shown in the picture and This is causing the unecessay polygons to increse, and i would have to go through a lot of area to check for these unecessary polygons. I created a Dummy layer as a intermidiate layer to avoid this, but i was hoping if there was a simpler solution.
    – Satya
    Commented Jun 11, 2019 at 7:15
  • @PolyGeo Trace tool works out great. But there are a lot of features to be done this way, and in the long run is very less productive. Also there are some features which are too long to be traced, and take up atleast a whole minute for one feature.
    – Satya
    Commented Jun 11, 2019 at 7:16
  • @MichaelStimson Yes. This is also something i have tried and am using mostly for this project. There is problem with this too... Some uneccesary lines are cutting the lines where I dont need that happening. So i am having to Check everything to see if the feature is whole or if it is divided in the middle, and have to merge them together. This is something I am following right now. It would help a lot if there is something simpler and faster
    – Satya
    Commented Jun 11, 2019 at 7:20

1 Answer 1

1

If you can handle a tiny bit of inaccuracy on the boundaries defined by existing lines, you could use the following method. Note that the boundaries defined by existing polygons would remain perfectly accurate. There is also some potential to "fix" the inaccuracies afterwards (see the note at the bottom).

  • Create a feature class containing all of the locations for which new polygons should be created (if it doesn't already exist). Eg, a point for each area for which a polygon should be created.
  • Run a 'Buffer' on all of the line feature classes to convert them to polygons, using the smallest buffer distance that you can (this distance will be the tiny inaccuracy of the results). Eg, 0.2 metres.
  • Use the 'Union' tool with all of the existing boundary polygon feature classes as input (all of the existing polygons and the new buffer polygons).
  • Run a 'Select by Location' using the results of the Union tool as the target layer and your location (points?) feature class as the source layer. Select from the target layer where the features "intersect the source layer feature".
  • Invert the selection so that you now have all the NON-INTERSECTING features selected.
  • Delete all selected features, leaving only the features that DO intersect with your locations.

(If you wanted to 'fix' the inaccuracies created by buffering the lines, you could do this fairly well, by buffering your results by half of the buffer distance used when you buffered the lines (eg, buffer the lines by 0.2 metres earlier, and buffer the results by 0.1 metres now). Then do a union on the two buffered polygon feature classes. Then delete the polygons from the union results if they do not intersect the original locations AND if they do not intersect a line buffer. Then dissolve the results.)

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.