Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Where is the Angle Measure Tool in ArcMap 10?

I can't seem to find it.

share|improve this question
1  
forums.arcgis.com/threads/… – whuber Oct 22 '10 at 17:05
up vote 5 down vote accepted

alt text You mean this? Select, and then tap in angle, as per what u did in 931? Can still do direction/length in combo as well. Let me know if this is not what ur after

share|improve this answer

This Python script tool will do the trick. To use it, add it as a script tool, set the parameter to Feature Set - and set its schema to a line feature class. This script should work with 10.0 and later.

# calculate an azimuth angle from a interactively entered
# line (feature set)
#
# Curtis Price, cprice@usgs.gov,  9/18/2013 11:51:10 AM

import math
import arcpy

# read line (This parameter should be a line feature set)
line = arcpy.GetParameterAsText(0)

# to see how this is used, see the help:
# http://resources.arcgis.com/en/help/main/10.1/index.html#//001500000028000000
# http://resources.arcgis.com/en/help/main/10.1/index.html#//002w00000023000000


def get_angle(xy1, xy2):
  """Calculate azimuth angle from two points. (Zero is north.)"""
  import math
  try:
    # ArcPy point objects
    x1, y1, x2, y2 = xy1.X, xy1.Y, xy2.X, xy2.Y
  except:
    # xy strings, e.g. "0 0"
    x1, y1 = [float(x) for x in xy1.split()]
    x2, y2 = [float(x) for x in xy2.split()]
  dx, dy = (x2 - x1, y2 - y1)
  return 90 - math.degrees(math.atan2(dy, dx))

try:
  # get first and last point of a line
  SHAPE = arcpy.Describe(line).shapeFieldName
  Rows = arcpy.SearchCursor(line,"","",SHAPE)
  feat = Rows.next().getValue(SHAPE)
  pt1 = feat.firstPoint
  pt2 = feat.lastPoint
  angle = get_angle(pt1, pt2)
  msg1 = "  First point: {0:.1f}, {0:.1f}".format(pt1.X, pt1.Y)
  msg2 = "  Last point:  {0:.1f}, {0:.1f}".format(pt2.X, pt2.Y)
  msg3 = "  Azimuth angle (in degrees): {0:.1f}".format(angle)
  arcpy.AddMessage("{0}\n{1}\n{2}".format(msg1, msg2, msg3))
except:
  raise Exception, "Invalid line input"
share|improve this answer

In ArcGIS 10.1 and later, there is a tool called COGO - located in the Editor Toolbar/More Editing Tools/COGO. On the tool bar there is a button called Reporting COGO descriptions. This reporting tool has a feature called "Angle between two lines" which reports the angle between 3 points on a line.

share|improve this answer
    
Thanks a million. You saved the day... – jonatr Aug 6 '15 at 11:53

Without even being sarcastic, for most tasks I use a simple set square / triangle and measure directly on the screen. Quick and dirty solution that works just fine.

share|improve this answer

Clarifies @TvsGIS' answer. In ArcMap 10.3 use COGO toolbar, select COGO Report (7th button from left) then select "COGO description of an existing feature" (2nd from right : arrow pointing to middle of a line). Then click on line feature. This gives the angle and length in Grid (Map) and Ground (survey measurements) co-ordinates. The transform from Grid to ground is the ADD Direction Offset and divide by Distance Factor of Editing Options > Units > dialog.

If you use "Direction and Distance of a line" (1st button on left), then interactively select start and end points of the line. The angle is from your start point to your end-point. However the line segment may be draw in the opposite direction.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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