BUG

Curved leader lines are unsatisfactory when converting coverage annotation to geodatabase annotation

Last Published: October 2, 2020

Description

After using ArcMap to convert coverage annotation to geodatabase annotation, curved leader lines are very thick and arrowheads are not visible.

Cause

When converting coverage annotation, ArcMap is not correctly converting the leader line thickness.

After conversion, annotation with leader lines is symbolized with a text symbol that has a Simple Line Callout. This line is always 1.0 points thick at the geodatabase annotation's reference scale. ArcMap is unable to correctly calculate a better thickness depending on the reference scale and $SIZE value for the converted annotation.

The converted leader lines will scale, becoming thicker when zooming in and thinner when zooming out, because all ArcGIS text symbol backgrounds will scale with the reference scale. This is correct behavior.

Workaround

There are three ways to work around or correct this problem:

  • Specify an artificially large reference scale for the target geodatabase feature class. For example, specify 1:50 instead of 1:6,000.
    This will not affect the text size if $SIZE does not equal 0 for any of the annotation. If any annotation has $SIZE equals 0, this cannot be done. Specifying an artificially large reference scale also fixes the problem of arrowheads not appearing.
  • After converting, start editing and make the leader lines thinner. For example, use a thickness of 0.1 points instead of 1.0 points. This does not fix the missing arrowheads problem.
  1. Use a sample AML to convert the coverage annotation leader lines to a line feature class in ArcInfo Workstation:
/* =======================================================================
/* Name: arrow2lines.aml
/* Purpose: creates line coverage from annotation arrows,
/* if this coverage already exists, it will be deleted.
/* Tis aml assumes:
/* - annotation has to have subclass name,
/* - only one annotation subclass per coverage,
/* Usage: Arc: &r arrow2lines
/* Arguments: - name of the coverage with annotation
/* - name of the annotation subclass
/* Date: Jul 20 2000
/* Author: ESRI

/* =======================================================================
&args incover sub
&severity &error &routine bailout
/*&echo &brief
/* ERROR CHECKING AND CLEAN UP...
&if [null %incover%] or [null %sub%] &then
&return &error Usage: &r arrow2lines
&if ^ [exists %incover% -cover] &then
&return &error Coverage %incover% doesn't exist
&if [exists %incover%line -cover] &then
kill %incover%line all

&describe %incover%
&s numannos = %DSC$ANNOS%
&if %numannos% = 0 &then
&return &error Annotation not present in the coverage
&if [exists lincov.gen -file] &then
&s delstat = [delete lincov.gen -file]

/* OPEN A GENERATE FILE
&s funit = [open lincov.gen openstat -write]

/* MAIN PROCESSING - FIND OUT WHICH ANNOTATIONS HAVE ARROWS,
/* READ ARROWS COORDINATES AND WRITE THEM TO ASCII, GENERATE FILE.
display 0
ae
ec %incover%
ef anno.%sub%
sel all
&s j = 0
cursor open
&do &while %:edit.AML$NEXT%
&s arrowpnts = [show anno.%sub% [show select 1] narrow]
&if %arrowpnts% > 0 &then &do
&s j = %j% + 1
&s record = %j%
&s writestat = [write %funit% %record%]
&do i = 1 &to %arrowpnts%
&s arrow%j%pnt%i% = [show anno.%sub% [show select 1] arrow %i%]
&s record = [value arrow%j%pnt%i%]
&s writestat = [write %funit% %record%]
&end
&s record = END
&s writestat = [write %funit% %record%]
&end

cursor next
&end
&s record = END
&s writestat = [write %funit% %record%]
&s closestat = [close %funit%]

cursor close
quit /* from ARCEDIT
n

/* GENERATE LINE COVERAGE FROM ASCII FILE
generate %incover%line
input lincov.gen
line
quit
build %incover%line line

/* SHOWING THE RESULTS
ae
&if [extract 1 [show display]] ne 9999 &then
display 9999
ec %incover%
de arc anno.%sub%
bc %incover%line 2
be arc
draw
&echo &off
&ty NOW ZOOM IN TO THE PLACE WHERE YOU KNOW THERE ARE ANNO ARROWS
&ty YOU CAN ZOOM IN COUPLE TIMES, ONCE YOU FIND A GOOD SPOT,
&ty PRESS ANY KEY TO CONTINUE AN AML....
&ty
&pause
de anno.%sub% off
draw
&ty WHAT YOU SEE IN RED COLOR, ARE LINES SIMULATING ANNOTATION ARROWS
&ty
&return
&routine bailout
&severity &error &ignore
&if [show program] = ARCEDIT &then

cursor close
&s closestat = [close -all]
&echo &off
&return
  1. Import the lines as a line feature class in the geodatabase.

Article ID:000005675

Software:
  • ArcMap 9 x
  • ArcMap 8 x

Get help from ArcGIS experts

Contact technical support

Download the Esri Support App

Go to download options

Discover more on this topic