Alternative way of creating flat buffers using standard ArcView License

8259
20
04-20-2010 03:12 AM
AndrewMayes
New Contributor
Hi,
I'm currently undertaking some analysis in ArcView that requires the use of 50m buffers along a line. However, the line itself is broken into sections and I need to create flat buffer at the end of each section (as opposed to the standard round buffers that are used within the ArcView licence) to avoid double counting within the overlapping circular ends. Given I dont have an ArcInfo Licence, is there an easy alternative approach I could use to get the same resulting buffer?
An obvious step would be to create individual rectangular polygons for each section, but given that the line lengths of each sections are likely to change over the course of the project as the design is refined, I was hopeful of finding a way to do this whereby I could easily re run the the process if if changes were made.
Any suggestions or ideas would be greatly appreciated. I've attached a simple diagram of the issue I have to explain it better. The red line indicates the ideabuffer break as opposed to the circular ends which obviously create overlaps.
Thanks very much in advance.....
Andy
0 Kudos
20 Replies
AndrewChapkowski
Esri Regular Contributor
Do the lines share some common IDs so they can be identified as the line features being buffered?

Assuming that is true, make a feature selection based on the line's IDs. Then using an insert cursor construct a polygon feature around the line and ensure that the radius in increased 50 meters. 


One way to get the points is to use the Trig for Right Handed Triangles Rules (SOCATOA) you can then get the points around the line. 
See : http://id.mind.net/~zona/mmts/trigonometryRealms/introduction/rightTriangle/trigRightTriangle.html
if you forget how to do that.
0 Kudos
AndrewMayes
New Contributor
Thanks for the posting back.
I'm afraid I'm not quite sure what you mean by an insert cursor. I've only recently begun using Arc again after a 5 year absence so it's taking me a while to get to grips with.....
Any chance you could possibly expand a bit?
Thanks again, much appreciated
0 Kudos
DarshaHardy
New Contributor II
Have a look at the 'create station lines' tool in ET Geowizards.

If you can create station lines at the end of each of your lines, you could use them to split a single buffer into square ended pieces.
0 Kudos
JakubSisak
Occasional Contributor III
Have a look at the 'create station lines' tool in ET Geowizards.

If you can create station lines at the end of each of your lines, you could use them to split a single buffer into square ended pieces.


I can't find this tool in ET Geowizards...
0 Kudos
JakubSisak
Occasional Contributor III
Hi,
I'm currently undertaking some analysis in ArcView that requires the use of 50m buffers along a line. However, the line itself is broken into sections and I need to create flat buffer at the end of each section (as opposed to the standard round buffers that are used within the ArcView licence) to avoid double counting within the overlapping circular ends. Given I dont have an ArcInfo Licence, is there an easy alternative approach I could use to get the same resulting buffer?
An obvious step would be to create individual rectangular polygons for each section, but given that the line lengths of each sections are likely to change over the course of the project as the design is refined, I was hopeful of finding a way to do this whereby I could easily re run the the process if if changes were made.
Any suggestions or ideas would be greatly appreciated. I've attached a simple diagram of the issue I have to explain it better. The red line indicates the ideabuffer break as opposed to the circular ends which obviously create overlaps.
Thanks very much in advance.....
Andy


Have you found a solution?
0 Kudos
JakubSisak
Occasional Contributor III
Do the lines share some common IDs so they can be identified as the line features being buffered?

Assuming that is true, make a feature selection based on the line's IDs. Then using an insert cursor construct a polygon feature around the line and ensure that the radius in increased 50 meters. 


One way to get the points is to use the Trig for Right Handed Triangles Rules (SOCATOA) you can then get the points around the line. 
See : http://id.mind.net/~zona/mmts/trigonometryRealms/introduction/rightTriangle/trigRightTriangle.html
if you forget how to do that.



Can you please elaborate?  How do you construct a polygon that is squared at the input line end? Can you provide the code?
0 Kudos
JakubSisak
Occasional Contributor III
Here is a solution using IConstructCurve3:ConstructOffset
see attached

If anyone is interested i also completed additional script that extends the line end by the buffer value then constructs the flat-end line buffer.
0 Kudos
AndrewHansford
Occasional Contributor II
Hi there,

I have copied your script to VB Editior in ArcGIS but can not get it to work.

I need to create sqaure buffers for a river feature (line feautre). I was hoping to use your code. could you please expand on your instructions for use of this code please?

regards

Andrew
0 Kudos
JakubSisak
Occasional Contributor III
Attaching an updated version which includes the option to extend end-nodes by the buffer value

Also attached is a result of this function; 3 lines buffered by 20 and 100m. One image shows the result when extended parameter is true the other one is with the extended parameter set to false

To run this script:
Open VBA Editor
Create a new Module
Paste code into the module
Create a custom button and open the click procedure
write a call statement to Create_Flat_End_Line_Buffer and include parameters
run debugger and add missing  references if needed

Select one or more polyline features in the Map document
Start Editing and set a target layer to your destination polyline layer

Parameters:
first parameter is the buffer size, second parameter is either 2 for mitered or 4 for beveled, last parameter either true to extend line or false not to extend
(Extending means that the end node of the line being buffered is extended outward in the direction of the last segment prior to buffering. This will create a square buffer around the end node rather then ending the buffer at the end node)

Limitations
Polyline input only
Polyline output only (resulting buffer is a polyline)
Result of one operation is 4 features: left site, right side and 1 line on each end (merge to close)
For other limitations consult ArcObjects help: IConstructCurve3:ConstructOffset
0 Kudos